Dunque.. credo che il problema nasca dal fatto che i browser "eseguono" il codice html e javascritp dall'altro verso il basso, quindi quando fai il submit, il form ancora non esiste, perchè sta sotto.

Codice PHP:

<html>
<
head>
</
head>
<
body>
  <
form name="mia_form" action="http://www.myaddress" method="POST">
                  
vari campi della form
      
</form>
      <
script type="text/javascript">
        
document.mia_form.submit();
    
</script>        
</body>
</html> 
Questo funziona, ma se inverto la posizione di script e form come nel caso originale, non funziona più.

Ciao!