Below is my take on this; I've removed the relative positioning and the margins on the 'middle-top' div and set it to float:left instead.
The issue seems to have been with the centre section clearing the righthand nav and thus appearing below it. I've added an extra div in the html to get the green background to encompass all the content with the new positioning values.
Whatcha think?
Code:
.left {
float: left;
width: 145px;
}
.right {
float: right;
width: 145px;
}
.middle-top {
float: left;
background: #FFFF00;
width: 645px;
}
.middle {
background: #FF0000 url(images/cushion-left_right.gif) repeat-y;
padding: 0 25px 20px;
width: 595px;
}
* html .middle {
width: 645px;
}