En teoría si haces ésto:
Código PHP:
<html>
<head>
<title>
Página con Javascript.
</title>
<script language="javascript">
<!--
document.body.bgColor = "yellow";
//-->
</script>
</head>
<body>
</body>
</html>
La página se va leyendo, llega al head, se lee tu script, y el intérprete de javascript llega a la línea y busca la etiqueta <body>, pero no la encuentra porque está definida más abajo y todavía no está definida.
Por eso hay que llamarlo en el evento onload (método seguro) o dentro del body (método más inseguro).
Ésto me ha funcionado en IE6 y en FF2, así que creo que me como mis palabras:
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Página </TITLE>
<META NAME="Author" CONTENT="derkeNuke">
</HEAD>
<BODY>
<script type="text/javascript">
document.bgColor="red";
</script>
</BODY>
</HTML>
Y lo que te dijo
MaBoRaK debería funcionar siempre que se esté llamando cuando el <body> esté definido también.
Saludos.
PD: ¿Qué tal en Opera y Safari y otros?