ahora comprendi tu consulta, habia entendido que al estar marcado querias que los campos estuvieran inhabilitado. tu codigo me funciona perfectamente y no he hecho ningun cambio a tu codigo. ejemplo con tu codigo...
Código:
<form name="f1">
<input type="checkbox" checked="checked" onclick="CambiaEstado(this.checked)" />
<input disabled="disabled" name="espec" /></form>
<script language="javascript" type="text/javascript">
function CambiaEstado(valor){
if (valor == true){
document.f1.espec.disabled = true;
}else{
document.f1.espec.disabled = false;
}
}</script>
asegurate que el navegador esta cargando una copia mas reciente. obligale al navegador a cargar el archivo pulsando la tecla CTRL + F5.