Just to confirm an earlier point, ntp will stop trying to sync the clock if it gets too far out.
This was a very common problem on VMs and a lot of people resorted to running ntpdate (or more recently ntpd -q which is much "gentler") on a cron at frequent intervals just to keep it close. (I haven't noticed this happening so much recently so this must be a problem that has been solved).
In your case you say your not virtualized... wait.. woah.. You're not virtualized?!?
There are settings for ntp which tell it never to give up no matter how bad the clock skews.
Take a look at the ntp man page ( http://linux.die.net/man/8/ntpd ) and search for the word "panic". Then read the sections "POLL INTERVAL CONTROL", and "THE HUFF-N'-PUFF FILTER".
Then read this: http://www.eecis.udel.edu/~mills/ntp/html/miscopt.html#tinker
Specifically, you put "tinker panic 0" in the config file.
Also, if your bios clock is way out, look at starting ntp with the "-g" option (but this only applies at startup).
And finally, run ntpd in debug mode ( -d ) and watch it in real time on the console.
ntp wins my award for the software that seemingly does the most simple task but is in fact doing something massively complex.
John