The citation scheme you're using tells LaTeX to print the full list of authors at the first citation and the abbreviated one (with et al.) for the next. So
\documentclass{article}
\usepackage[longnamesfirst, authoryear]{natbib}
\begin{document}
A citation \citep{a}
Another \citep{a}
A citation \citep{b}
Another \citep{b}
\bibliographystyle{plainnat}
\bibliography{mybib}
\end{document}
with the following (fake) database mybib.bib
@article{a,
author={Alpher, A. and Bethe, B. and Gamow, G.},
title={A nice title},
journal={J. Niceties},
year=2013,
pages={1234-5678},
}
@article{b,
author={Alpher, A. and Bethe, B. and Gamow, G. and Delta, D.},
title={A nice title},
journal={J. Niceties},
year=2013,
pages={1234-5678},
}
will print
A citation [Alpher, Bethe, and Gamow, 2013a]
Another [Alpher et al., 2013a]
A citation [Alpher, Bethe, Gamow, and Delta, 2013b]
Another [Alpher et al., 2013b]
If you use \citep*, instead, you'll get always the full list:
A citation [Alpher, Bethe, and Gamow, 2013a]
Another [Alpher, Bethe, and Gamow, 2013a]
A citation [Alpher, Bethe, Gamow, and Delta, 2013b]
Another [Alpher, Bethe, Gamow, and Delta, 2013b]
There is also \citet*, for "textual citations".