I stumbled on this site and it seems that i have done most of the tips there on my phone. The only thing that i skipped is about the light time-out. I thought it wasn't critical, but it seems that i was wrong. I used to change the default settings to longer period so that it won't be too dark and it will dim longer, and that's the root cause why my battery gets drained so fast. Now, i changed it into lower values and my battery lasts longer than before. It can last for three days again.
Here's the tips from the site:
Also, set your light time-out to something lower like 30 seconds. You'd be surprised at how much an extra 20 seconds at a time can drain your battery. Say you touch your phone 200 times throughout the day. Thats an extra 40 minutes your backlight is on if you keep at 60 seconds, as apposed to 40 seconds.If you re using Garmin Mobile XT, then i suggest to read this comment. It does drain your battery very fast. Either you kill the process or upgrade to the latest version (5.00.50 currently) which enables you to disable the background service.