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:
<div id="wrapper">
<div id="left"></div>
<div id="right"></div>
<div id="main"></div>
</div>
Then your css would like something like this:
#wrapper {
}
#left {
width: 100px;
float: left;
}
#right {
width: 100px;
float: right;
}
#main {
width: 800px;
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.
-justin