Add hidden field to checkbox and submit unchecked value
Take a look at the answer to Custom validation for a form? This tells you how to add your own validation handler to the form. You will need to implement the form_alter like they show to add your custom validation, but also remove the validation that is throwing the error when the value is 0. (You can do this by unsetting that index in the array.) Then, for your custom validation method, my recommendation is to have a validation handler something like:

function my_custom_validation(&amp;$form, &amp;$form_state) {
  if ($form_state['values']['my_checkbox_field'] !== 0) {
    // Call the validation handler you removed in your form_alter
    // I might set the name of the method to a variable in form_state
    the_validation_handler_you_removed($form, $form_state);
  }
}


where you call the original validation handler from your method if the checkbox value is not the specific value you're looking for, in your case 0.