Clock times can be slow to either a CMOS Battery, software running, or even just low quaility components slowly failing.
If your clock is loosing time when the machine is off, then it is either the battery or components. The battery is very easy to replace, as are the CMOS settings. 95% of Bioses are just left at the defaults, and should work fine. The key screen to pay attention to is usually the first one that has all of your drives listed.
If the clock is loosing power when the machine is turned on, then this is most likely software or just cheap components. As Bill mentioned, some anti-virus software will do this, as will any software that takes priority over the system processes. The clock just slowly gets pushed aside and cant keep up.
The best fix for the software solution (and the hardware if the time isnt 100% critical) is to install some NTP Software. NTP = Network Time Protocol. This is built into Windows XP / Newer Macs and most Linux. This software in XP can be reached by double clicking on the clock in the task bar.
The NTP Software will at certain intervals contact a central server to see what the current time is, then based on how long the response took figure out the current exact time, and set the system clock to that.