Do you mean that each time you boot normally, it performs a check on your "C" drive before booting or does it never get to the stage of booting fully?
If it is checking first and then booting, what you're 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. It 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: 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.