Hola:
No entiendo porqué se complican tanto las cosas...
El destino puede ser el action del form (incluso podrías enviar parámetros), y con el evento se puede chequear el checkbox...
<form action="index.html" onsubmit="return acepto.checked"...>
Con eso no se envía el formulario si no está marcado el checkbox name=acepto cuando se pulse el boton submit...
Otra opción interesante es que se deshabilite el submit con el mismo checkbox...
<form action="index.html" ....>
<input type="checkbox" name="acepto" onclick="envio.disabled = !this.checked" />
<input type="submit" disabled value="Enviar" >
Saludos