Der Grund: ich habe beim Aufruf die Funktion, die ich verzögern wollte, nicht als String übergeben. Geht ja auch nicht wirklich aus der Doku hervor, dass das nötig ist - und kurioser Weise haben diverse Browser auf verschiedenen Windows-Installationen von 2000 und XP bis 2003 Server auch keinen Fehler ausgespuckt.
Jedenfalls verhält sich setTimeout() ähnlich wie eval(), d.h. der als String übergebene Code wird entsprechend ausgeführt.
Falsch: window.setTimeout(window.self.close(),250);
Richtig: window.setTimeout("window.self.close()",250);
Thomas