Here's an option that works in IE6 and up (possibly IE5+ - I haven't tested that).
Note that this will only work for 3 items. A 4th item will get the 10px left margin applied and a 6th item will be pushed to the next row at the moment. I'm sure someone smarter than me can figure it out.
I'm using expressions (which I guess are scripts - but may work for you) and conditional comments to get the first child in IE6. Enjoy:
<!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">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Columns test</title>
<style type="text/css" media="screen">
#container {
border: 1px solid red;
width: 320px;
overflow: hidden;
}
.column {
margin-left: 10px;
width: 100px;
float: left;
background: #ccc;
}
.column:first-child {
margin-left: 0;
}
</style>
<!--[if IE 6]>
<style type="text/css" media="screen">
.column {
margin-left: expression((this===this.parentNode.childNodes[0])?"0":"10px");
display: inline;
}
</style>
<![endif]-->
</head>
<body>
<div id="container">
<div class="column">
<p>Column 1</p>
</div>
<div class="column">
<p>Column 2</p>
</div>
<div class="column">
<p>Column 3</p>
</div>
</div>
</body>
</html>