I started suffering from this problem after I upgraded to OS 2.2.1 a couple of months ago, and now it's making me crazy.
Every couple of weeks, I will experience greatly reduced battery life. Under normal conditions, I get more than a day of battery life. When this bug hits, battery drains in less than a day. I take the phone off the charger at 6am or so, and by 8pm or so I'm getting low batter warnings. That's about half of what I expect under normal conditions.
I can't correlate onset to a specific event or set of actions. This has happened to me 3 or 4 times. The first few times, I thought I was able to fix it by following instructions posted here - delete/re-add my Exchange account. This time, I've tried a number of things but the issue persists. I'm on day 3 of reduced batter life, and I can't figure out how to fix it. I've tried resets (holding sleep button + home button), deleting Exchange account, killing email, Safari and phone by holding down Home button, turning off location services, setting email to manual, and nothing appears to work this time.
One thing I note is that when the bug is active, Settings reports that usage time = standby time, or they will be very close to equal, even though the phone is in my pocket on standby most of the time. Sample screenshot of settings at
http://www.flickr.com/photos/jlscott3/3534049948/. That's from the last time this happened to me. On the current go-around, I've got an 18-19 minute gap between usage and standby.
Man, I hope 3.0 fixes this. It's seriously annoying.
JLS