Crea il link in questo modo:
$time = time();
$hash = md5($id . $time . "somerandomsalt"); // check this again in activation.php
$link = "activation.php?id=" . $id . "&hash=" . $hash . "&time=" . $time;
Quindi in activation.php
controlli se l'hash corrisponde. Oh, e ovviamente controlla l'ora :P
Potresti offuscare un po' per nascondere l'id , hash e tempo parametri di query, ma questa è la base.