Boot into Safe Mode, and disconnect your cable or adsl Internet connection. Then first run scandisk, then defrag. This should work in 99% of the cases.
Depending on the options you choose (including one that can't be reached via the GUI) defrag will take anything from 3 minutes up to a few hours.
Hope this helps.
I set my task scheduler to defrag drive c on my hp laptop, windows 98, the defragmenting drive c window has been running on my desktop for 2 days and still shows 0% complete.
I have never done this since I've had this machine, but should it take this long, am I doing something wrong. Thks.