A variety of things in Redhat 6.0 conspire to prevent xntpd from keeping a clock set properly in all circumstances. xntpd has a feature where it won't change the system clock if the clock is way out of line (roughly 10 minutes). This feature makes some sense as a sanity check, but it means that xntpd alone won't alwaysset the clock. If a system boots with a wildly incorrect time, Redhat 6.0 won't fix it. Worse, xntpd never sets the hardware clock. So even if a system boots correctly and xntpd keeps it synced, if the hardware clock drifts badly then when the system reboots the time will be so far off xntpd can't help. The fix for the first problem is to run ntpdate at bootup. Redhat used to do this, I'm not sure why it's been removed. I believe the fix for the second problem is to reset the hardware clock from time to time with hwclock.
Add the host that you wish to synchronize against using ntpdate to /etc/ntp/step-tickers. Look at /etc/rc.d/init.d/xntpd for details. We do not synchronize the hardware clock with the system clock because of the numerous support issues associated with setting the hardware clock on multiple platforms. For example, dual booting machines often require localtime rather than UTC, and many BIOS's do not support daylight saveings times.