1) What is new or different since the last time everything worked properly (ie, new hw, new sw, virus, error, etc)?
2) Did you run chkdsk or did you run chkdsk /r? If only the former, re-run it with the /r switch. It doesn't sound like a hd problem, but let's rule it out.
3) I'm guessing you can boot to safe mode? If so, here's the CORRECT way to do a selective startup:
Open msconfig and on the General tab choose "selective startup" (uncheck all three items) and reboot. Does the problem still occur? If not, start adding items back to msconfig one or two at a time, rebooting after each change, until the problem reappears and you'll have identified the offending process. This is clearly a time consuming procedure, but it is the best way to determine if some process loading with the system is the cause of your problem. After you've isolated the cause, do not use msconfig to permanently disable the process. Instead, if it is a service go to START - RUN and type: services.msc (then press enter) and disable the service OR, if it a program, you can download & run a simple app such as Mike Lin's Startup Control Panel (http://www.mlin.net/StartupCPL.shtml) to enable, disable, or otherwise manage startup programs.