Looks like you need to structure the columns a little different. The general rule is in your wrapper, put any floated elements first, then your non-floated main content.
So, in your case. You would have a wrapper like this:
Then your css would like something like this:
margin: 0 auto;
Basically, float your columns, but don't float the main content. The auto left/right margins won't work on a floated element.