From my experience, this will be a difficult problem to resolve in a pleasant way and may have only one (unfortunate) solution.
To cursively see if you have a hardware problem, try to boot from an emergency start-up disk (did you happen to make one? If not, you can easily make one from another similar system running Windows 7). If you can boot from the emergency start-up disk, run chkdsk on your boot drive and see what it says (chkdsk is on the emergency start-up disk -- the command is "chkdsk <boot-device>:", like "chkdsk d:"). If your boot device is the usual "C:", it may be named "D:" temporarily or another letter depending on your configuration. Any errors detected by chkdsk? If so, run it again with the "/f" switch and it will...