With sadness, I think the broad answer is likely never. For a given piece of hardware Linux support generally improves over time, but new hardware continually comes out so support is continually behind. You need the OS vendor, the kernel authors, and the hardware vendor to all be in sync for this kind of thing to work out well.
With that out of the way, it is possible to diagnose and fix the problem yourself. sudo apt-get install powertop, read some docs, experiment a bit. (Right here is where someone injects "buy a Mac".) And if you go the "safe" route and pick a laptop popular with Linux users, like a Thinkpad, you'll likely have better luck. My laptop (an X201) gets around 6 hours and I haven't changed anything.
This response is very off the cuff, but I seem to recall reading recently about a fix but that it did not make it into 3.2 (or was that 3.0) because of some outstanding concern or concerns I cannot recall. That is, a real improvement (was it something that evolved from that Phoronix post everyone's been citing, recently?), but that still needs a bit of work to safely/effectively be merged.
Sorry I can't be more specific, but have a look around at the recent news on this topic.
Here's a Phoronix article on the issue and fix that covers it in detail: http://www.phoronix.com/scan.php?page=article&item=linux...
And here's (what I think is) the corresponding bug for Ubuntu: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760131
Please note that even though that Ubuntu bug is marked as fixed, the following comment on it seems to call that into question: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/760131/...
Either way, it sounds like it will be fixed in 12.04.