There are tons of threads on here and other forums addressing this issue. When I first got my phone I used a thread on phandroid under tips and tricks under the droid 2 section. I will try and link it. If none of these threads helps you may have a bad battery.
There are multiple factors. I'll list some of my ideas below:
1. I believe the adage that you must "break in" the phone. In other words, the battery gets better with time. I personally believe my battery has gotten better since day 1 (then again it could be a result of other factors, listed below).
2. How hard you work your phone and the amount of features you use will definitely have an impact on the battery. Things like auto-sync, screen brightness, widgets, etc. Personally, I leave auto-sync off, my screen brightness on the highest (full) and I only have one widget that updates every two hours.
3. Different roms will have different effects on your battery life. Although it is very much personal-based, you will find certain roms to be better on your battery life than others. What I am also saying is that Person A might find Rom A better for his battery, while Person B finds Rom B better for his battery. You just have to find what works best for you. Personally, I've had the best battery life results from squidlymandingo's roms over all the others such as Matt's Epic and Team Defuse's Fission. But again, you should try them all because you never know Epic or Fission could be best for you.
4. Don't believe anyone that says they get 25+ hours out of their phone. If they actually do get that, then they are not using their phone for what it is meant for. If you use your phone for the features you bought it for then you should expect battery life anywhere in the 8h-12h (heavy), 12h-17h (medium), and 18h+ (light). With the extended battery and running squidly's rom with my set up (posted above), I get anywhere from 10h-20h depending on how often I text/e-mail, call, browse the web, and refresh social apps like TweetDeck.
3 tips for you. You can do one, some or all, whatever you feel comfortable with.
*1.) Root your phone and use a custom ROM*
2.) Get JuiceDefender or other reputable battery and phone manager. Can download it from the android market and there's a free edition to try it out and it will help (it helped me, but YMMV so just keep in mind individual results may or may not be the same).
3.) Browse the forums for a bit and look up the many tips and tricks people here have used to help to prolong their battery life.
* = Use at your own risk. Rooting voids your warranty, and although you can unroot your phone, and get it back to complete stock, you may not be comfortable doing so. Be sure you feel comfortable enough to try it and understand the risks before you do.
EDIT: Myself, I've done all 3. My phone is rooted. I use Squigly ROM. I use JRummy OC. I use JuiceDefender. I've also browsed the forums here before doing anything to gather information before attempting anything. My current battery life has improved immensely, even in poor signal areas where my phone has to work harder to do what I need it to do.
Read my post history, I outline every app/setting I use to maximize battery life and performance. I have an extended battery on the stock ROM (with all the bloatware frozen); I'm currently at 10hours 11minutes and 42s since unplugged, with 90% battery left. Granted, 6 of those 10 hours were while I was asleep, but I still regularly see two days of moderate usage, 3 of light. For me, moderate usage is 3-5 hours of MP3s, some web browsing, running a few apps (games, skymap, appbrain, etc), some wifi, and maybe some navigation if I happen to be lost. I can run mp3s at work ALL DAY (7-9 hours) and still have 30-50% battery left when I get in my car (depending on what else I've been doing).
short rundown: I rooted (google z4root if you're unfamiliar), I used TitaniumBackup (Donate) to freeze all the bloatware that comes preinstalled on the phone, and just eats battery/processor time, I used SetCPU to create profiles. For example, when my screen is off, my phone's max processor speed goes down to 600MHz, same if my battery gets over 41C. I keep wifi/bluetooth/GPS turned off except when I'm using them, and 3G is on... roughly half the time I use my phone? I'm not important enough to need constant push email notification, so that's no big deal to me.