width:100%; overflow: auto; /* or overflow-y:auto or scroll */ works fine in all browsers but Google’s Chrome. It is my understanding that this is a bug, however, I cannot find any workaround. The demo is available here:
Screenshot (FF & Google Chrome):

Remove the margin-left on #body.
Chrome does have some problems with margins and floated elements, but this fix doesn’t appear to harm your layout.