Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Worth a try, Worst case scenario, you can have Apple or a second party vendor replace the battery. Cost is reasonable.
 
I think the US price for a battery from Apple is around $100. Worth it if you are waiting on the 5, and you can sell it on later with the added bonus of being able to advertise it as having a nearly new battery.

Have you tried calibrating it?

Let it go completely dead on it's own, and shut itself down.

Charge as normal, and see what life you get then.
 
Also, I would: 1. Reset it (home and sleep button, not just turn it off and on); And if that doesn't work 2. Restore as new. You didn't give many details :D on if this gradually happened or it suddenly couldn't hold a charge.
 
If it were me I'd buy a battery off ebay for under a tenner. Unlike 3G/3GS, the battery of an iphone 4 is pretty easy to replace. That is, if Apple won't help you out, and you have tried all the usual voodoo. Reset, restore, checking for rogue processes etc.

Also, if it's jailbroken, install batteryinfolite. It'll tell you the current capacity and the number of charge cycles.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.