See NtpMotivationDev for discussion of this topic.
Clocks in Computers and Hardware devices are problematic. Unsynchronized, they drift, sometimes very rapidly and certainly unpredictably. This can cause substantial problems in situations where accurate time keeping is required, for example in debugging of network applications and devices, and when auditing the results of such applications. A Java application may use the system clock to get the time, and then may send UPDATE statements to an SQL server using the now() operator to get the SQL server's system time, and who is to say that the clocks are even remotely keeping the same time?
Network Time Protocol (NTP) provides facilities for synchronizing clocks, maintaining their accuracy, and correcting them gently and appropriately when significant errors are detected.