The iPhone has (like many 3G smartphones) always had poor battery life when using connectivity for email sync etc. As new firmwares have become available, this life has improved generally, so that I have only had to recharge twice a day sometimes. However with the release of the 3.1 firmware, my battery life took a tumble so that I was in fact charging four times a day. This has been documented elsewhere on the Internet, and as a travelling man this had become almost impossible to keep going through the whole business day. Even with going to the 3.1.2 firmware, there was no improvement.
Then I accidentally left the WiFi on after leaving one office with WiFi and went to another office without WiFi. I did not really notice but suddenly my phone was back to and exceeded my previous battery life. WTF! Further tests with both my iPhones (yes I have two, one for each country) concluded further that this is a real affect and is not proven explainable although I have a theory that I would love checking. Technically turning WiFi should cause a REDUCTION in battery life.
The theory that I have is that Apple have boosted the transmission power on the iPhone 3G radio to allow it to better operate on the US ATT network which is notoriously poor in many US states. This causes the battery to drain further, and also explains why it was not ‘fixed’ in the 3.1.2 release – as it is not something they want to fix as it is solving a US issue that they are getting a lot of flack for. However, the moment you turn the WiFi on I believe that drops the 3G transmission power back to previous levels, which when WiFi is only beacon’ing (trying to find another WiFi network) means a reduced power draw and better battery life. The other evidence is that I note that the iPhones are noticeably warmer when only on 3G.
Not sure if this is really true, but all I know is that my phones now last a lot longer. Try it, it can only improve things.