I have had this issue twice recently with two separate users where there mail and calender items were sync’ing but not their contacts.
This first thing to always check here is that wireless sync of the contact is enabled. In the contacts area go into options, then desktop and make sure Wireless synchronization is set to on.
Assuming that it is then I have found the issue is usually corrupt service books. You can resend the service books from the BES manager. However I have found in these two cases recently that I addition to resending the service books I had to go back into the Contacts options in the blackberry and turn off wireless sync of contacts, save it, and then turn it back on and save again.
This extra step resolved my issue in both cases.