Symptoms:
1) ESC cuts off at around 2 minutes.
2) Battery still half full according to charger.
Cause:
There's actually another symptom: ESC is very hot. As it turned out, my ESC was cutting off because it was too hot.
Solutions:
1) Mount ESC on the side for better ventilation. I think this helped, but this alone didn't really solve the problem.


2) Reduce the drain from the motor. This was a combination of adjusting the throttle curve and the pitch curve. Please see my post about the setup here: E-Flite Blade 400 Beginner Setup for Hovering and Slow Forward Flight. (16 minutes of flight time!)
With the two solutions above. I have no problems with early cut-off anymore.
Other options you can try:
1) Fly without the canopy.
2) Replace the stock 25A ESC with one with higher rating. e.g. 35A
I hope this helps. Enjoy!