Vmware host time drift
That's a problem I encountered and sometimes the drifts are so large that the ntp service refused to sync.
I found that if you install the vmware tools on the guest, it will automatically sync its time against the host's time.
Short Answer: proper kernel parameters and ntpd config
Long Answer: VMware has a best practices doc that is pretty good on this, http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427
Note that it is somewhat contrary to some of the information in this thread. For instance, it is specifically recommended not to use the vmware-tools timesync feature anymore.
Yes, installing vmware-tools for the clock sync tool is important, but might not be enough.
What has worked for me is adding the kernel boot parameter:
clock=pit notsc
This sets the clocksource to something vmware keeps updated, and disables the time sync counter.
Perhaps unrelated, but on recent enough kernels I always also append:
divider=10
which significantly reduces guest cpu utilization.
Both of these are also helpful with or without vmware tools are installed, and help keep the clocks more closely in sync (rather than a constant struggle between a quickly drifting clock and the vmware tools clock sync service).