Puoi usare innerHTML con altri oggetti dell'HTML ad esempio <div> e persino ai <td> quindi non ti devi per forza inchiodare su document.forms[0].innerHTML, senza poter dare soluzione al tuo problema, se vuoi avere il tuo nuovo contenuto "prima di" e "dopo di" allora basta che ci metti in mezzo un oggetto html... ad esempio un <div>:
<form id="form1" name="form1" method="post" action="">
nome: <input type="text" name="nome" id="nome" />
<div id="newText"></div>
<input type="submit" name="button" id="button" value="Submit" />
</form>
<script type="text/javascript">
document.getElementById("newText").innerHTML = 'cognome: <input type="text" name="cognome" id="cognome" />
' ;
</script>