¿Por qué mi tabla HTML no respeta el ancho de mi columna CSS?

Tengo una tabla HTML y quiero que las primeras columnas sean bastante largas. Estoy haciendo esto en CSS:

td.longColumn
{ 
     width: 300px;
}

y aquí hay una versión simplificada de mi tabla

<table>
  <tr>
   <td class='longColumn'></td>
   <td class='longColumn'></td>
   <td class='longColumn'></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   <td></td>
   [ . . and a bunch more columns . . .]
  </tr>
</table>

Por alguna razón, la tabla parece hacer que esta columna sea <300 px cuando hay muchas columnas. Básicamente quiero que mantenga ese ancho sin importar qué (y solo aumente la barra de desplazamiento horizontal).

El contenedor en el que está la mesa no tiene ningún tipo de ancho máximo, por lo que no puedo entender por qué está presionando esta columna hacia abajo en lugar de respetar este ancho.

¿Hay alguna forma de evitar esto, así que no importa qué, esta columna se mantendrá un cierto ancho?
Aquí está el CSS del contenedor externo div:

#main
{
    margin: 22px 0 0 0;
    padding: 30px 30px 15px 30px;
    border: solid 1px #AAAAAA;
    background-color: #fff;
    margin-bottom: 30px;
    margin-left: 10px;
    _height: 1px; /* only IE6 applies CSS properties starting with an underscrore */
    float: left;
    /*width: 1020px;*/
    min-width:1020px;
    display: block;
    overflow: visible;
    z-index: 0;
}

Respuestas a la pregunta(9)

Su respuesta a la pregunta