Add this style:-
.clear { clear: both; width: 100%; height: 0; visibility: hidden; }
and add the clear div into the markup before the closing tag of the #content2 container:-
...........be.</p>
</div>
<div class="clear">& nbsp;</div><!--added clear div (no space between & and nbsp;-->
</div>
<div id="content2bottom"></div>
</div><!--end middle-->
The floated divs have no height, so the #content2 container doesn't know where to add the background. Adding an unfloated invisible div with no height after the floated divs makes the #content2 take the background down to it.
Edit: your #content2bottom div which has no content should do the same thing if you move it above the </div> tag into the #content2 div.