I have read quite a few different methods of having html checkboxes get posted to the server, but I am really looking to do it without modifying anything except for $.serial
I think Robin Maben's solution is missing one step which is to set the boxes to have a property of 'checked'. jQuery's user guide notes on serialise() state that only checked checkboxes are serialised, so we need to add a bit:
$('form').find(':checkbox:not(:checked)').attr('value', '0').prop('checked', true);
The only down-side to this method is a brief flash of your form showing all boxes checked - looks a bit weird.