There is a solution that might be of interest to exchange customers. If you own exchange you can use add2exchange by diditbetter.com. My company also has this avail as a service on our hosted exchange platform. The software can sync public to public, public to private, private to private for contacts, calendars and tasks.
Hope this helps.. it's the only solution that works well with any mobile device as it is an exchange server side sync.