My battery when new barely lasted the day so I replaced the battery and back case for a honking huge gigantic battery. Now I can get a week (well 5 days?) on a charge just sitting there and 2 days if I use it.
NOTHING IS WRONG WITH YOUR BATTERY OR PHONE. It was made that way and at 1 or 2 years old I expect 2 hours of run time.
I recently got an HTC Evo for free, so you can't beat that deal, but my battery lasts about 2 hours. I know this is one of the biggest issues with the phone. I've seen methods that supposedly "reset" the battery, but haven't found them to improve the issue. Has anyone had this work successfully, or know of a better battery that's compatible with this phone?