I loose about 1% of battery per 3 minutes of talking on the phone (not on speaker phone).
Another time I noticed that I had unplugged the phone, it was at 100% charge, then about an hour later, without me using it AT ALL, not even lighting it up to check the time -it just sat in my pocket- it had 21 mins of "usage" and 2% battery loss.
Before this iPhone I had an old motorola Razr (model v.1, my thrid cell phone ever) which lasted for a week without needing charging even with normal use (it couldn't even do email or web browsing). Since this is my first iPhone I thought maybe it was normal to only get a couple of hours of use but I can't make it through half a day of occasional talking without it draining to about 10% left or less.
It's infuriating. I have to keep a charging cable and adapter with me, and use one in the car when I go places which psychologically feels like carrying an old slung-over the shoulder cell phone from the early 80's.
I've tried all the tips here and I've been keeping up with what people say works and doesn't and I've seen, overall, very little performance difference. The one thing that helped slightly, was rebooting the phone because "Compass Calibration" was stuck on literally all day and after rebooting it turned off.
I've drained the battery at least 3 times until the phone shuts off and then charged it fully, toggled everything off in halves (like in the old Conflict Catcher days with OS9 extensions) and nothing made any perceptible difference. Not even backing up and restoring it. Keep in mind, this was a new iPhone without having one prior to restore to.
A friend and I compared streaming netflix on his iPhone 4 compared against my iPhone 4S and for every percentage drop in battery he saw, I saw 2 to 3% and as time went on it became more disparate eventually hitting 4% loss to every one of his 1%. Same network, same movie and streaming right next to one another.
I've been keeping an eye on the iPhone console logs and while there are many things (and errors) logged, nothing jumps out as a battery draining problem; certainly nothing repetitious enough to cause such a drain.
I've also sat and watched the CPU % for 5+ mins straight while no apps were running (nothing in the Multi-Finder thing under the dock) and didn't see any significant spikes in CPU usage; it just hummed along between 1% and 7%.
Not toggling Set Time, iCloud, Raise to Talk, or anything else really helped which is making me think it could be a hardware problem.
I noticed that my iPhone 4S charges appreaciably faster than my friends well used iPhone 4 and it occured to me that maybe the battery isn't recieving a full charge, like there's a bad cell or two in it (even though there aren't really "cells" in there to begin with.)
Maybe there's something wrong with the batteries in a batch of iPhone 4S's that don't fill up all the way and before they fill up they announce they're full when in reality they're not. Now, that could be a software-charging issue I guess but I get the distinct impression that either the battery isn't really reaching full charge or it or the charging managing software is reporting a full charge before one's achieved and possibly preventing a full charge.