Long boot time don't necessarily mean there's a bad hard drive - typically long boot times point to device
drivers - and Win 7 typically needs different
drivers from XP. How long does it take to boot into Safe Mode?
I would run chkdsk /r (note the space before the "/" on the drive in question from a command prompt and allow it run at next boot. Depending on the size, or what it finds, it could take many hours (I've seen more than 24) and it may appear hung - walk away and check in later.
Alternatively, run the diagnostics from your drive's maker -
Hard Drive Diagnostics - listed by maker