An sich habe ich nicht viel an innerHTML auszusetzen, die Unterstützung ist weitläufig, aber slayeroffice’s alternatives to innerHTML beschreibt einige Alternativen um Inhalte per DOM zu manipulieren.
Wenn es um das einmalige Einfügen geht, ist ja nun auch das Prototype Insertion Object eine gute Lösung.