the checkbox needs to have a checked value:
<input type="checkbox" name="next_day_ship" id="next_day_ship" value="1" />
on the confirm page, add a hidden form element that has same name to capture the value posted from the checkout page:
<input type="hidden" name="next_day_ship" id="next_day_ship" value="<?php echo((isset($_POST["next_day_ship"]))?$_POST["next_day_ship"]:"") ?>" />
also on the confirm page, near the top is a collection of code groups to set session variables to capture the form information form the checkout page, add a new one for next day shipping:
<?php
if (!session_id()) session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
$_SESSION["next_day_ship"] = "".((isset($_POST["next_day_ship"]))?$_POST["next_day_ship"]:"") ."";
}
?>
In your existing shipping rules, add a new trigger:
Based on Session Variable Value
if the session variable 'next_day_ship' is '!=' a value of '1'
for the next day shipping rule, use the trigger:
Based on Session Variable Value
if the session variable 'next_day_ship' is '=' a value of '1'