The basic principle is:
IE5 incorrectly adds specified padding after calculating the width. This means that padded divs must have widths which add to less than 100%. Some people therefore serve up different CSS sheets for IE and NS.
The answer is to have no padding on the divs but to nest another div inside each column, the inner div can then have padding (but no width spec so it sizes automatically). This works in both NS and IE (and all others I hope!).
Some sites advise the use of javascript to calculate the position of the bottom of the longest column and to relocate the bottom bar to just below that position.
A better solution is to insert <br clear="all"> before the bottom bar.