Well, then you may have the problem of windows 7 improperly detecting the battery level.
It's an issue that some people have. THe OS /thinks/ the battery is discharged too low and shuts you down even though it is still nearly fill.
I don;t have a lot of experience with this, but one suggestion is to try issuing the following command at a dos prompt (while on battery I think)
powercfg -setdcvalueindex SCHEME_CURRENT SUB_BATTERY BATACTIONCRIT 0
Which will turn off the automatic shutdown. Could try that and see if you get your 3 hours back, though you r battery meter may still be out of whack. There are also lots of articles about "recalibrating" your battery under windows 7 but frankly I do not know if that applies or not
Hopefully someone else will have a more specific answer...