Haz el enlace así:
$time = time();
$hash = md5($id . $time . "somerandomsalt"); // check this again in activation.php
$link = "activation.php?id=" . $id . "&hash=" . $hash . "&time=" . $time;
Luego en activation.php
compruebas si el hash coincide. Ah, y mira la hora, por supuesto :P
Podría ofuscarlo un poco para ocultar el id , hachís y tiempo parámetros de consulta, pero esto es lo básico.