Una opción es colocar todos los elementos a deshabilitar dentro de otro que facilite su referenciación. 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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script type="text/javascript">
var DR=function(f){
    if(document.addEventListener){
        var func=function(){f();document.removeEventListener('DOMContentLoaded',func,false);}
        document.addEventListener('DOMContentLoaded',func,false);
    }else{
        function r(f){/in/.test(document.readyState)?setTimeout(function(){r(f);},9):f();};
        r(f);
    }
};
function addEvent(obj,fun,type){ 
    if(obj.addEventListener){ 
        obj.addEventListener(type,fun,false); 
    }else if(obj.attachEvent){ 
        var f=function(){ 
            fun.call(obj,window.event); 
        } 
        obj.attachEvent('on'+type,f); 
        obj[fun.toString()+type]=f; 
    }else{ 
        obj['on'+type]=fun; 
    } 
}  
function t(id){return document.getElementById(id);}
DR(
    function(){
        ver();//ojo, acá this referencia a window
        addEvent(t('pp'),ver,'click');//aquí, en cambio, this referencia al checkbox
    }   
);
function ver(){
    var relacionados=t('camposrelacionados').getElementsByTagName('input'),l=relacionados.length,i=0;
    for(;i<l;i++){
        relacionados[i].disabled=!this.checked;    
    }
    
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input name="pp" id="pp" type="checkbox" value="1" />
<div id="camposrelacionados">
<input name="uno" type="text" /><br />
<input name="dos" type="text" /><br />
<input name="tres" type="text" />
</div>
<input name="otrocampo" type="text" />
</form>
</body>
</html>