I had a problem yesterday where I couldn't log in to my account on Windows 7 but my wife's account worked fine. I noticed that the computer had poor performance when on her account. I ran MBAM and everything came back clean. I tried both accounts in safe mode and had the same behavior.
Then I remembered that the night before the computer froze up for about 5 minutes then started working again. I decided to restart it that night because I have a memory leak somewhere, and I thought that it might have caused the crash. I never logged back in that night after the restart. When I tried it the next morning I got the behavior above. I went through the steps for this problem to run sfc /scannow, which always stopped at 92% before I got an error that it couldn't complete. I was still having problems with the performance too. Everything would go fine for a few minutes then it would be excruciatingly slow for a while. I remembered when I had performance issues like this before, and it was when my hard drive was going out several years ago. My current hard drive is not a year old yet, so I didn't think that was happening. I decided to run a chkdsk to make sure though. While the first chkdsk was clean, I decided to schedule the chkdsk /r (with the GUI, not the cmd) on startup.
The scan found that ntuser.dat and a couple other files had bad sectors and moved them. I left it all night to finish checking free disk space. When I tried this morning I was able to login and the performance was back to normal. It looks like in my case the ntuser.dat was corrupted or affected in some way by the bad sector. While this may not always be the case, it could be the cause of some of the more difficult to fix instances of this problem.