I've come from a long line of cellphones...and the 3GS' battery is top notch. One thing you need to EXPECT from a smartphone with high functionality is that the battery will drain with use.
Same goes for laptops, RC cars, car batteries, etc.
My previously favorite phone for sipping from the battery was the Nokia E71. I've used the HTC Touch/Pro/Diamond, Blackberry Pearl, Curve, Bold, Palm Pre (WORST of the bunch, by far), Motorola RAZR2, and I use the iPod as a reference.
The 3GS is second, barely, to the E71. Symbian S60 3rd edition is a very conservative, but functional environment. No flashy visuals, no animation, just to-the-point and all business. It does great. It's also virtually a battery with a phone strapped to it. When you open the back, it's ALL BATTERY through the whole internals.
With this in mind the 3GS is admirable, at least mine is. 3-4 hours of heavy use is what I'm getting out of it. If left overnight and with moderate use it's an every other day charge, not every day. I also work in shifts, and feel comfortable that this will reliably serve as an alarm clock for me too.
Mine was perfect and I ordered online from AT&T. No blemishes, no chips, odd bends, it's what you'd expect from the pictures on Apple's website. If you're teetering on the edge and have the money/contractually free situation to buy it, then get it dude. You will NOT regret it, this phone will delight you when you start using it.