Chkdsk running on every boot.
What your friend is experiencing is what Windows refers to as "setting the dirty bit" and you have to unset that bit. Each time Windows XP starts, autochk.exe is called by the kernel to scan all volumes and check if the volume dirty bit is set. If the dirty bit is set, autochk performs an immediate chkdsk /f on that volume. Chkdsk /f verifies file system integrity and attempts to fix any problems with the volume. The problem is usually caused by a hard shut down or a power loss during a read-write operation on that particular drive.
Open a Command Prompt window ("Start > Run" type CMD and click OK). At the prompt, type:
FSUTIL DIRTY QUERY C: and press Enter.
This queries the drive and more than likely it will tell you that it is dirty.
Next, type CHKNTFS /X C: and press Enter.
The /X tells Windows NOT to check that particular drive on the next reboot. At this time, manually reboot your computer, it should not do a Chkdsk and take you directly to Windows.
Once Windows has loaded, open a Command Prompt window again and perform a Chkdsk manually by typing:
CHKDSK /F /R C: This should take you through 5 stages of the scan and will unset that dirty bit.
Finally, type FSUTIL DIRTY QUERY C: and Windows should confirm that the dirty bit is not set on that drive.