Actually the battery prefers a partial rather than a full discharge. Frequent full discharges should be avoided when possible. Instead, charge the battery more often. There is no concern of memory when applying unscheduled charges.
This is partly true. The portions of the battery that go unused for long periods of time will lose their ability to discharge at all so it is recommended to occasionally use nearly the entirely battery (usually down to 8-10% is enough to touch all cells)
Apple's own website suggests once per month. Otherwise it is best to charge whenever it's convenient. I charge at my desk at home, at my side table, in my car, and at my desk at work. Even when I'm out for long periods of time I've never had my phone go under 40% and I use it quite a lot.
Another thing to consider is that these batteries actually charge better over time, after a few complete cycles.
Another factor to remember is that battery life remaining is an estimate that is calibrated over time and the charge remaining as the voltage in the battery decreases over time will vary from battery to battery, this is why calibration is necessary, the chip in the battery will remember certain intervals that lasted longer than others and compensate in percentage estimates.
Another factor about lithium ION batteries such as those in the iPhone is that they have two phase batteries to support quick charge, this results in a portion of the battery discharging more quickly than the rest (and also takes a charge faster).
Another thing to consider is that high temperatures reduce charge retention.
Another thing to consider is certain conditions such as low signal strength drastically boost the power gain on the antenna and dramatically lower power. Also with 3G antennas other conditions can lead to additional reassembly processing and thus more power.
Brightness is a key factor in battery life.
The fact of the matter is, a phone like the iPhone, particularly the 3G S with the additional horsepower it's packing, even lasting more than two hours of casual use is amazing. At this point almost all casual and many professional tasks of mine are now done almost solely on the iPhone and my phone will easily get to 5 hours of usage without using 60% of the charge.
The best way for you to determine if you have battery problems is to shut off every radio, go into airplane mode, disable all possible features and internet, etc. Charge to full, choose a single song in iPod and set it to repeat. Time how long it takes to run out your battery (note this could take 20+ hours if estimates are met).
This demonstrates regular constant load on the battery which should eliminate spike loads and excess heat from your tests. You should expect quite a long playtime and probably what apple's numbers say with the setup I specified. If you are getting quite a lot less playtime (less than half the published estimate) then you should take your phone in to a Genius or call Apple for support.