Running chkdsk in Safe Mode with no parameters is unlikely to yield different results, but you can sure try it.
Here is what I usually say regarding what I think you are seeing:
Chkdsk provides information specific to each file system in a status report. The status report shows errors found in the file system. If you run chkdsk without the /r or /f command-line option on an active partition it might report spurious errors because it cannot lock the drive. You should use chkdsk occasionally on each disk to check for errors.
If you run chkdsk from a command prompt while Windows is running (like you are doing), it may report errors or it may not report errors - and it may report different errors each time you run it. It doesn't necessarily mean there is something wrong - is the way you are running chkdsk.
Here is how Microsoft explains this observation:
"...CHKDSK may report that a disk is corrupted even when there is no
real corruption present. This can happen if NTFS happens to modify
areas of the disk on behalf of some program activity that CHKDSK is
examining at the same time. To verify a volume correctly, the volume
must be in a static state, and the only way to guarantee that state is
to lock the volume. CHKDSK only locks the volume when /F or /R (which
implies "F") is specified. Thus, you may need to run CHKDSK more than
once to get it to complete all stages in read-only mode."
Read the entire article here:
http://support.microsoft.com/kb/187941
If you are running chkdsk from a command prompt (running just chkdsk with no options), you are not in the static state required and as Microsoft says, you may see errors "when no real corruption is present". That is the way it works if you use it that way.
The usual problems or "errors" seen when running chkdsk from command prompt involve the USN Journal or "minor inconsistencies in unused index entries". If XP is not in a static state, the USN Journal and other things regarding your HDD could be and are probably changing all the time, so chkdsk may report issues in these areas because chkdsk is not being run when the system is in a static state.
If you do not run chkdsk in a static state and it reports issues, that does not mean there is a problem - it is the way you are running chkdsk. That is the way it works (or might work).
If you want chkdsk to actually try to fix problems, your system must be in a "static state".
There are only two ways to be sure your system is in a static state when running chkdsk.
One way is to run chkdsk from the XP Recovery Console so that XP is not "running" to interfere with chkdsk and when it will be impossible for things to be changing on the volume.
The other way is to schedule the chkdsk to run on the next reboot of the system before XP has a chance to finish loading and look for the results on the chkdsk with error correction in the Event Viewer.
When you choose to run chkdsk with error correction either from the disk properties Tools options or from a Command Prompt (chkdsk /r) you must respond in the affirmative to this question:
Would you like this volume to be checked the next time the system restarts?
If you respond in the affirmative, then chkdsk /r will be scheduled to run the next time XP reboots.
Running a chkdsk with error correction can take a long time - perhaps many hours depending on the size of the volume, the amount of data on the volume and what chkdsk finds to do. Be patient and wait observing the percent complete on the screen which may even appear to go backwards sometimes. If the HDD light is blinking or you can hear the system "working" chkdsk is still running, so do not try to interrupt it.
If you run chkdsk /r from the XP Recovery Console, you can watch it and see everything that is happening. Sometimes that is a little more interesting to watch so you can keep an eye on it. If you have no genuine bootable XP media from which you can boot into the XP Recovery Console, it is easy to make a bootable XP Recovery Console CD (no XP media required).
If the chkdsk with error correction runs the next time the system is rebooted, the activity and result will show up in the Application Event Log. If you want to see what chkdsk did when it ran on the reboot, look in the Application log for events sourced by Winlogon and that have the date and time close to the time chkdsk was run.