allora, c'è un errore di concetto.
Vediamo se riesco a spiegartelo (Non sono mai stato bravo come maestro )

Praticamente il php è un linguaggio lato server, mentre il javascript è lato client.
Quando il server deve elaborare la pagina php, prima di mandarla al client, non da nessun peso al fatto che ci sia o meno codice javascript nella pagine, ma elabora TUTTO il codice php, indistitamente. Quindi la variabile $canc ha sempre valore false

Come modificare?

puoi fare cosi: il controllo javascript, invece di farlo in questa pagina, lo fai in quella precedente, dove c'è il link a questa

codice:
LINK
poi nella pagina metti

codice:
<script type="text/javascript">
                    window.alert("Cancellato. Grazie!")
</script>         
</html>
        <?php
            $sql2 = "SELECT email_address FROM address_book";
              $res2 = mysql_query($sql2) or die(mysql_error());
            while ($to = mysql_fetch_array($res2)) {
                 if ($address == $to['email_address']){
                    $sql3 = "DELETE FROM address_book WHERE email_address ='".$address."'";
                    $res3 = mysql_query($sql3) or die("Errore durante la cancellazione $query");
                }
            }
         ?>