Bueno, lo que tenemos aquí es un popurrí de funciones, frames y ámbitos de variable. Aunque está claro que el problema son los frames, que es por donde tendríamos que haber empezado.
 
Lo que está ocurriendo es que miras a ver qué valor tienen las variables 
hora, 
minuto y 
segundo en un frame donde no están definidas, por eso te da 
undefined. 
Las variables esas ya están definidas dentro de tu frame (dentro de 
archivo.js están declaradas), pero en tu frame no has llamado a 
iniciar_hora(), luego no tienen valor. 
De todas maneras en firefox no me ha funcionado para nada como se espera, no creo que se puedan escribir etiquetas como <html> y <script> en un frame...  
Creo que lo más óptimo sería llamar a funciones entre frames: Puedes llamar a una función en la página padre con 
parent.tuFuncion(), así no necesitarías tags fuera de body. 
Mi consejo es que te libres de los frames cuanto antes... pero prueba este ejemplo:  
 Código PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<title>Página nueva</title>
</head>
 
<body>
 
<iframe name="central"></iframe>
 
<script type="text/javascript">
<!--
 
var hora;
var minuto;
var segundo ;
 
function iniciar_hora() {
    alert("inicio hora!");
    //extraemos del objeto la hora, minuto y segundo actuales
    var fecha = new Date();
    hora = fecha.getHours();
    minuto = fecha.getMinutes();
    segundo = fecha.getSeconds();
    return true;
}
 
function mostrar_hora() {
    alert("hora_global = "+hora+"\r\nminuto_global = "+minuto+"\r\nsegundo_global = "+segundo); 
}
 
 
function comenzar() {
    var C;
    C='Incio de la experiencia.';
    C+='<a href="#" onclick="alert(\'click\'); parent.comenzar2(); return false;"> COMENZAR</a> ';
    parent.central.document.write(C); //Muestro el contenido de C por pantalla, en el frame C que es mi frame principal
    return true;
}
 
function comenzar2() {
    alert("comenzar2!");
    var C;
    C='<a href="#" onclick="parent.iniciar_hora(); return false;">iniciar hora </a><br/>';
    C+='<a href="#" onclick="parent.mostrar_hora(); return false;">mostrar hora</a>';
    parent.central.document.write(C); 
    parent.iniciar_hora();    // iniciamos
    parent.mostrar_hora();  // miramos
    return true;
}
 
 
comenzar();
 
// -->
</script>
 
 
</body>
</html> 
   
  
Todo en un mismo documento funciona muy bien (además lo he hecho pensando también en firefox). Así no tienes que preocuparte de ámbitos, todo estará en 
parent, ya ya está.   
Saludos.