Sometimes mobile phones with Li-Ion battery have a problem that causes them not to provide anywhere near the expected run time. A possible problem is that not all cells are charged equally. This can happen especially if you have not charged your phone until it said it's full the first time you charged it. But it can happen in any case.
Now a great workaround for this problem is to follow this guide posted on the xda-developers forum: You fully charge the phone. (until it says it's full) and then power it off and then:
1. Wait until it shows its fully charged.
2. Unplug the phone and wait for it to turn off lights and display.
3. Replug the phone and go to No. 1. (Repeat about 10 times)