ntp client as a service (daemon) is the way to go... I had the same problem; I wasn't aware of the fact that dovecot would be sensitive to time going backwards. I was running ntpdate via cron, and the first time the time-check resulted in backwards correction, dovecot bombed. Unless the drift is great and frequent it's not a hardware clock problem as generally the clocks on the PC motherboard drift, and the drift doesn't have to be much when it's to the "wrong" direction (as far as dovecot is concerned). The way ntp handles the correction is very graceful—by speeding up or slowing down the clock (or stepping for greater corrections)—that it's recommended even on systems that don't run dovecot. If the drifts are generally nominal, it might be a good idea to use -x (--slew) option to allow adjustment of the common few second corrections more gradually without stepping. Without the "-x" option slew is limited to ±0.128 second corrections and time is stepped even for, say, 3 second corrections. With -x one second correction is completed in about 33 minutes, and greater corrections (up to 600 seconds) take thus days to complete, so the -x option is not good for systems with bad clocks :-).
Ville