If your container has a specified height, explicitly set and not equal to auto, adding "height: 100%" on the children is all you need.
Problem with most of these is that many do not want to loose a height that's dependent on the content, and such features are ruled out in CSS as they are considered too time consuming to render by the browser crafters (who focus on speed, not on our comfort).
Setting the display to table-* would be an alternative, but well browser support is still too low (thanks to IE as usual)
Another way is to give the parent position (e.g. by giving it position:relative) and then absolutely position the children in it using top:0 and bottom:0. But again some legacy IE versions will be uncooperative and will need javascript to work around their failures.
So the faux background trick and letting the height be automatic and clearing the parent as/if needed is the easiest solution that doesn't pollute the html.
Check also on flexi-floats by suzyuk.
Since the old references you could find out here point to her profile, but that the current link there is different. It's all pretty hard to find, so from my bookmarks: [
ago.tanfa.co.uk...] [hoping it'll stay the same]