Since it keeps happening it's either an app (which I doubt, unless you run it all the time) or it's your settings. What you should do is restore in DFU mode and setup as new. Turn off bluetooth, only turn on wifi when you're using it, turn off push and fetch (use manual for mail). You should've synced everything you could before this restore, so that syncing afterwards will be relatively painless. That's what I'd do.
You can also reset all settings (NOT erase) and avoid all the above. Some have had success with this. Turn off all the stuff I mentioned above.
Try either of those for a day. If you tried the latter, then try restoring next, if it doesn't get much better. If none work, your battery is bad, yet again. Return it. You should be able to go at least a day (morning until charging at night before bed) under normal usage (a few hours surfing, some phone calls, some texting, etc.).