At a quick look it could be the misssing left and right margins for #primary
Not sure about your theme but if we look at twenty ten #main, #wrapper and #container, two are set in the first instance to margin: 0 auto;
/* The main theme structure */
#access .menu-header,
div.menu,
#colophon,
#branding,
#main,
#wrapper {
margin: 0 auto;
width: 940px;
}
Then the margin-top is reset after
#wrapper {
background: #fff;
margin-top: 20px;
padding: 0 20px;
}
Then the #container later has margins to shift the #content area left leaving space for the sidebar #primary
#container {
float: left;
margin: 0 -240px 0 0;
width: 100%;
}
#content {
margin: 0 280px 0 20px;
}
Without getting the structure and margins right, you will not get validation errors just odd floats in the layout.
This is the construction of twenty ten if it helps.
<html>
<head>
</head>
<body>
<div id="wrapper">
<div id="header">
Header Content
</div><!--header-->
<div id="main">
<div id="container">
<div id="content">
Loop Page or Post
</div><!--content-->
</div><!-- container -->
<div id="primary">
Sidebar Content
</div><!-- primary -->
</div><!-- main -->
<div id="footer">
Footer Content
</div><!-- footer -->
</div><!-- wrapper -->
</body>
</html>
HTH
David