Tenias unos cuantos errores pero por encima te explico. Si quieres acceder a variables o a objetos de forma dinamica tendras que meterlos en un objeto para acceder a ellas mediante strings.
Con document.write no ibas a mostrar el resultado porque esa funcion escribe en el lugar donde este puesta y estaba en el head, para eso usa innerHTML y decides en que parte del body debe estar.
El for te sobraba si lo que querias era mostrar tan solo un elemento que es el que indicas mediante el input#campo.
Se me olvidaba, la concatenacion del document.write tambien la tenias mal hecha.
Saludos.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xht...al.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin tlo</title>
<script type="text/javascript">
function empleado(antiguedad, horario, salario){
this.antiguedad= antiguedad;
this.horario= horario;
this.salario= salario;
}
var empleados = {};
empleados['empleado1'] = new empleado('1999', '9:00-15:00', 1900 );
empleados['empleado2'] = new empleado('2005', '9:00-15:00', 1700 );
function mostrar()
{
var quien = document.getElementById('campo').value;
document.getElementById('mostrar').innerHTML += 'horario: '+empleados[quien].horario + ' / salario: '+empleados[quien].salario+ ' euros<br />\n';
}
</script>
</head>
<body>
<input type="text" id="campo" name="text" />
<input type="button" id="boton" value="Mostar" onclick="mostrar()"/>
<div id="mostrar"></div>
</body>
</html>