Der Haken liegt auf jeden Fall hier: li#erst:hover ul#sub-one {display:block}
CSS ist keine Programmiersprache. Und du willst sowas sagen wie:
Wenn man mit der Maus über die Liste #erst fährt, dann soll die neue liste #sub-one sichtbar werden.
Und das geht so nicht.
Zudem die ganze Konstruktion semantisch nicht sauber ist, wie paul123 auch schon bemerkte - lies es mal der Reihe nach vor - da geht der Überblick verloren. Du müßtest dann die Listen schon korrekt verschachteln, so wie hier z.B.:
http://www.xs4all.nl/~peterned/examples/cssmenu.html
Geht halt nicht im IE - aber das ist eh klar - der kann's nur mit Javascript.