Frequently in the various CRM forums, someone will ask a question about how to prevent getting duplicate contact records in their Exchange/Outlook contacts when using CRM for Outlook.
There is no magic answer to totally avoid outlook contacts getting duplicated. One of the best things you can do is use server based Exchange synchronization rather than Outlook synchronization. The reason is because when you don’t use server synchronization, every time you reinstall or reconfigure the client you will re synchronize the contacts, which will duplicate any that are already in your contacts. Also, change the user’s contact sync filter prior to enabling synchronization or installing outlook client. The default synchronization filter is contacts I own, and if the user owns many contacts in CRM, this will probably give him more contacts than he really wants to get, and increase the chances of duplicating one that he already has in outlook contacts.