Probabilmente manca un elemento con il clear per il contenitore. In genere quando si ha una struttura del genere è meglio far si che l'elemento centrale non abbia dimensioni ma si adatti agli elementi laterali.
Un esempio di codice è questo, corretto anche dal punto di vista semantico ( il testo non dovrebbe rimanere libero dentro al div come hai fatto te, ma annidato dentro un paragrafo).
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
<head>
<title></title>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
text-align:center;
}
#contenitore {
margin:auto;
width:900px;
}
#contenitore:after {
content:".";
clear:both;
display:block;
visibility:hidden;
height:0;
}
.destra, .sinistra {
width:200px;
}
.destra{
float:right;
background:yellow;
}
.sinistra{
float:left;
background:red;
}
.centrale{
background:green;
}
</style>
</head>
<body>
<div id="contenitore">
<div class="destra">
Questo è un testo di prova, Questo è un testo di prova,
Questo è un testo di prova,</p>
</div>
<div class="sinistra">
Questo è un testo di prova, Questo è un testo di prova,
Questo è un testo di prova,</p>
</div>
<div class="centrale">
Questo è un testo di prova, Questo è un testo di prova,
Questo è un testo di prova,Questo è un testo di prova,
Questo è un testo di prova, Questo è un testo di prova,</p>
</div>
</div>
</body>
</html>
Gli sfondi sono messi per farti vedere gli elementi di blocco, ed è stato dichiarato un diversivo per creare un elemento con il clear, in maniera da adattare il contenitore al contenuto.