Hola:
 
Lo que con javascript se podría hacer, es anular el envío con una validación, que evidentemente no funcionaría si el visitante desactiva javascript o inyecta el submit en la url, así que también tendrías que complementar la acción con una validación en el servidor... 
si el checkbox tiene id="check1", y el campo asociado es campo1, el esquema sería: 
<form onsubmit="return chequea(this)" ... 
y chequea serái... 
function chequea(f) {
 errores = [];
 if (document.getElementById("check1").checked && f.campo1.value == "")
  errores.push("debe rellanar el campo 1");
//... resto de validaciones, añadiendo mensajes de errores... 
if (errores.length > 0) alert("errores:\n" + errores.join("\n"));
 return (errores.length == 0);
} 
Saludos 
