I have adapted the layout from http://www.positioniseverything.net/...rs-center.html to create the layout below:

 html, body {
margin: 0;
padding: 0;
border: 0;
background-attachment: fixed;
background-image: url(images/background.gif);
background-repeat: repeat;
background-position: left top;
body {
color: #000000; 
background-color: #000000; 
font-family: verdana, sans-serif; 
font-size: 80%; 
text-align: center;
margin: 0px;
p {margin: 0; padding: 8px;}
h2 {font-size: 1.2em; text-align: center; padding: 10px;}
.clear { clear: both; }
a {text-decoration: underline; font-weight: bold; color: #000;}
.alignright {margin-top: 0; text-align: right;}
.wrapper {
margin: 0 auto;
width: 760px;
text-align: left;
background: #add8e6;
border: 2px solid #000;
.outer {
border-left: 150px solid #961215; 
border-right: 305px solid #cfc;
background: url(images/blackline.gif) 100% 0 repeat-y;
/*** These are the visible side col BG's. The image BG is needed to replace a side border
on div.inner, which can't be used because of problems in Mozilla. The image substitutes 
for the thin black divider between the right green col and the center col. If the black divider
is not wanted, the BG image may be removed. The Tan hack below feeds a IE a different 
BG location, due to a BG placement variation. 
* html .outer {
.inner {
margin-left: -2px; /*** This fixes a small overlap problem in IE6. ***/
width: 760px; /*** This width is for non-IE browsers. Mozilla makes this necessary. ***/
border: 2px solid #000;
border-width: 0 0 0 2px;
/*** div.inner is wider than its container, div.outer, and so overlaps to the right, pushing
div.right into the proper position. IE expands div.outer instead, requiring a Tan hack to avoid 
blowing the layout apart. IE gets the original 100% width as in the Livingstone layout. It blows 
my mind that all this hacking is being caused by the mighty Gecko engine! (shakes head ruefully)
* html .inner {
width: 100%;
.float-wrap {
float: left;
width: 455px;
margin-left: -150px;	 /*** Same length as left column width ***/
/*** div.left is in div.float-wrap, and when div.float-wrap is neg margined to the left, 
div.left is carried over into the proper position. 
.left {
float: left;
width: 150px;
position: relative; /*** IE needs this or the contents won't show outside the parent container. ***/
.right {
float: right;
width: 305px;
position: relative;
background-color: #CCCCCC;
* html .right {
margin: 0 -305px 0 0; /*** IE gets this margin. ***/
.center {
float: right;
width: 305px;
background-color: #999999;
.wide {
background-color: #FFFFFF;
width: 100%;
.wide h1 {
font-size: 1.2em;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
color: #45706F;
width: 300px;
display: inline;
margin-left: 50px;
.top {border-width: 0px;}
.bottom {border-width: 0;}
 <!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" xml:lang="en" lang="en">
<title>The British Youth Council</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
	@import url(byc.css);
<div class="wrapper">
	<div class="wide top">
	 <img src="images/logo.gif" />
	 <h1>Empowering young people to have a voice</h1>
	<div class="outer">
	 <div class="inner">
	 <div class="float-wrap">
	 <div class="left">
		<h2>First in source</h2>
		<p>This column is left floated within div.float-wrap, and div.float-wrap is neg margined to the left by the 
		 width of div.left.
<!-- end left div -->
	 <div class="center">
		<h2>Second in source</h2>
		<p>This column appears first in the source, and is enclosed by the left floated div.float-wrap,
		 within which it is floated to the right. div.float-wrap is partially negatively margined out to the left
		 so its other (left floated) child, (div.left) can appear laying over the red border of div.outer.
<!-- end centered div -->
	 <div class="clear">
	 <div class="right">
	 <h2>Third in source</h2>
	 <p>This column is right floated outside div.float-wrap.
<!-- end right div -->
	 <div class="clear">
	<div class="wide bottom">
I have adjusted the design so that the columns are in the order of left center right and have adjusted the widths so that the whole design is 760px wide and the columns from left to right are 150px, 305px, 305px.

In IE everything is perfect but in Firefox the right column is 150px too far to the right and i am going round in circles..

Please please help