Not sure what you're saying here... but let's try this:
initial.php:
<?php
if(!empty($_GET) && $_GET['err'] === 1)
$tos = false; // didn't accept TOS
?>
<form action="signup.php" method="post">
<table>
<?php
if(!$tos)
echo '<tr>
<td>You must agree to our Terms of Service before proceeding.</td>
</tr>';
?>
<tr>
<td<?php if(!$tos) {echo ' style="border-top, border-left, border-right: 5px solid #f00; background-color: #a00;"'; } ?>>TOS will go here</td>
</tr>
<tr>
<td<?php if(!$tos) {echo ' style="border-bottom, border-right, border-left: 5px solid #f00; background-color: #a00;"'; ?>><input type="checkbox" name="toscbox" /> By checking this box you are agreeing to our Terms of Service.</td>
</tr>
</table>
</form>
That takes us to signup.php:
<?php
if(!isset($_POST['toscbox']) || empty($_POST['toscbox'])) {
header('Location: initial.php?err=1');
exit;
}
// Continue with other crap here...
?>
Of course, a small bit of JS magic would stop them from proceeding and not have to reload the page 😉