For years I have been using something like this in a root crontab to 
adjust the time every 6 hours:

10 4,10,16,22 * * * /usr/sbin/ntpdate-debian

On this machine it was going off by about 0.17 seconds every 6 hours and 
it was pretty consistent:

  7 Sep 16:10:10 ntpdate[11932]: adjust time server 91.189.89.199 offset 0.172249 sec
  7 Sep 22:10:09 ntpdate[13949]: adjust time server 91.189.89.199 offset 0.173074 sec
  8 Sep 04:10:10 ntpdate[15490]: adjust time server 91.189.89.199 offset 0.174787 sec
  8 Sep 10:10:09 ntpdate[18482]: adjust time server 91.189.89.199 offset 0.169422 sec

Then I noticed that on a newer Ubuntu installation I didn't have the 
crontab, but the timing was even better.  I'm pretty sure that newer 
Ubuntu installs let the user to choose to set date/time "automatically," 
and that was what I had chosen.

So I had to wonder what it *really* was doing.  I think it was running 
ntpd.

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
ntp      23926  0.0  0.0  39832  2264 ?        Ss   Sep08   0:01 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -c /var/lib/ntp/ntp.conf.dhcp -u 119:128

So I installed the ntp package like so:

sudo apt-get install ntp

That automatically set everything up and started it running.  It can be 
called with the service command to ntp...

sudo service ntp [start stop restart]

...which runs the script here:

/etc/init.d/ntp

That seems to keep the clock set very precisely.

I guess the downside is that it is always running, but it if is using no 
more than 2.3 MB, that isn't a problem.

Is this what everyone is doing these days?

Mike