Yo lo que hago es tomar la hora del servidor de la base de datos:
Tengo un servidor con Firebird instalado.
Cuando un operaro pone su nombre de usuario y clave guardo esa entrada en una tabla.
El insert es más o menos así:
Código SQL
[-]
INSERT INTO ENTRADAS (FECHA_HORA, USUARIO, CLAVE) VALUES ('Now', :USUARIO, :CLAVE)
El servidor Firebird traduce 'Now' como la fecha y la hora del servidor.
Supongo que esta funcionalidad estará también en muchas otras bases de datos.
También puede darse el caso de un ordenador al que le falla la batería que guarda la hora y empieza a atrasarse.
Sugerencia: Utiliza la hora del servidor.