If the BibTeX style orders the citations by first appearance then what you have to ensure is that this first appearance is in the order you want. In theory this could be done by using
\nocite, but in the worst possible scenario that means that you have to put
\nocitedeclarations for all cites in the right order into the preamble . So that is most likely not a good option.
As an alternative you could ensure that a certain cite is simply not seen by BibTeX, in other words does not produce an entry in the
.aux file. Of course that only works if that cite is at least once cited in a regular way somewhere in the document, but according to your problem that is the case.
So here is the code to do just that:
#1% % do \cite comand
In the argument of
\ignorecitefornumbering you place the citation command you want to use. Of course you could change that to even include the
\cite command internally, but then you either need to take care of the optional argument or have non available. Also in that case alternate citation commands (from
natbib, for example) wouldn't work. So I guess the above is actually the better approach.
If you run this, then your
.aux file will contain
i.e., the first reference to
bar does not show up.