If you select the iPhone to check mail say every 15 mins (not Yahoo-push), if the phone's asleep, does it wake up every 15 mins, check mail, then turn off again? Or does it do it all in the background without waking up/turning the screen on?
Yesterday, I had autocheck for e-mails every 15 minutes enabled along with wifi. My battery was almost dead by the end of the day (showing it off constantly to everyone at work might of also had an impact).
Today, I turned off autocheck for e-mail and disabled wifi. Still showed it off a lot. Still had 50% battery by the end of the day.
Not sure which had the most impact. When I go back to work on Thursday, I will try autocheck every 15min with no wifi.