CSS en la lista anidada: evite el estilo de ambas listas

Tengo la siguiente estructura de lista anidada:

HTML:

<div id="my_nested_list">
    <ul>
        <li>
            Item label
            <ul>
                <li>Subitem 1</li>
                <li>Subitem 2</li>
                <li>Subitem 3</li>
            </ul>
        <li>
        <li>...</li>      
   </ul>
</div>

CSS:

#my_nested_list>ul {
/* first level list */
}
#my_nested_list>ul>li {
/* first level items */
}
#my_nested_list>ul>li ul {
/* second level list */
}
#my_nested_list>ul>li ul>li {
/* second level items */
}

Mi problema es que con el selector de espacio en lugar de>, las reglas del primer nivel se aplican en el segundo nivel. Pero necesito soporte ie6, que no admite>. Por lo tanto, tengo que usar el espacio.

Hasta ahora tengo 2 soluciones:

put clases en cada ul y li, y use#my_nested_list ul.firstlevel li.firstlevelutilizar#my_nested_list ul li y#my_nested_list ul li ul li para reescribir todas las reglas de primer nivel no deseadas.

¿Tienes mejores ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta