Registrant wrote:
Note the "Armstrong Richard R" contact does not reflect the preference "Before last name" while the "Richard Armstrong" contact does.
I use vCard v2.1, but that should affect only the exported vCards. I switched the pref to vCard 3.0, and I still couldn't reproduce your issue.
However, looking at the two .vcfs, I notice that the 'wrong' one has an extra property, X-ABOrder, which might be linked to the issue. (X- are private extensions to the specifications, see
<http://en.wikipedia.org/wiki/VCard>
for details.)
So I created a new .vcf with the data in your screen shot, including the X-ABOrder property, and imported it. Sure enough, it displayed the issue you're complaining of. Same .vcf, no X-ABOrder property, no problem.
Consequently, it seems to me that the behaviour you described is caused by the X-ABOrder property. How is the value for this property entered or edited? I have no clue, I'm not an Adress Book expert.
As to solving your problem, I noticed that the X-ABOrder property is not included if the card is exported in vCard v2.1 format. So, the solution I suggest is, change the vCard format to 2.1, export all your contacts to a file, then import them back. An alternative solution is keep to vCard 3.0, export all contacts to a file, then open the file with a text editor (eg, TextWrangler) and delete all lines containing the "X-ABOrder" string, save, then import back. (In BBEdit, TextWrangler's elder brother, this is trivial.)
Whatever solution you choose, make sure, (a) to make a backup first, in case something goes wrong, and, (b) to test it first on a few contacts, then, if it works, apply it to all.
HTH