You should be floating all three columns. Currently you are left floating your left column, right floating your right column while not floating your middle column. Instead you should be left floating all your columns: (Then again, in your document you will want to switch the order of your blocks.)
Also watch out setting heights: This is usually not necessary and main ruin layout when the user increases text size in his browser.
margin: 0 300px 0 150px; /* out */
padding: 5px 10px 5px 10px;
float: right; /* out */