Non sono un "esperto", ma fra poco credo che dovrò affrontare un problema simile.
Evidentemente è una cosa da risolvere perlopiù in JS (sigh).
Penso si possa rilevare un evento che indica che hai lasciato il primo campo. Questo deve innescare una chiamata AJAX ad una azione nel tuo controller, che recuperara i dati per per poi caricarli con JS, nella combo successiva.
Quando si rileva una modifica in un campo che sta prima, sarebbe utile azzerare quelli successivi.
Ciao si prima di conoscere Yii avrei fatto anch’io col santo jQuery, speravo esistesse qualcosa di precostruito (widgets o simili) adatto all’occorrenza