W czym problem?
Kod
<script type="text/javascript">
function pokaz_samochody(val)
{
var cars = document.getElementById('cars');
var opts = cars.getElementsByTagName('option');
for(var i = 1; i < opts.length; i++)
{
optvalue = opts[i].getAttribute("value");
x = optvalue.indexOf(':');
client_id = optvalue.slice(0,x);
if(client_id != val)
{
opts[i].style.display = 'none';
}
else
{
opts[i].style.display = 'block';
}
}
cars.selectedIndex = 0;
}
</script>
<select name="client" onchange="pokaz_samochody(this.options[this.selectedIndex].value);">
<option value="0">Wybierz klienta</option>
<option value="1">Klient #1</option>
<option value="12">Klient #12</option>
</select>
<select name="cars" id="cars">
<option value="0:0" style="display: block;">Wybierz samochód</option>
<option value="1:1" style="display: none;">Samochód klienta nr #1 o id #1</option>
<option value="12:20" style="display: none;">Samochód klienta nr #12 o id #20</option>
<option value="12:10" style="display: none;">Drugi samochód klienta nr #12 o id #10</option>
</select>
Ładnie?

To teraz kliknąć na pomógł. ;p
Na firefoxie i operze powinno śmigać.
Na IE trzebaby pokombinować z wyrzucaniem tych opcji (getElementById('cars').innerHTML = ''); i wstawieniu nowych przez new Option.
Proponuję poczytać tutaj:
http://www.javascriptkit.com/jsref/select.shtml pod nagłówiem Option Object.