a, b, c, d dosyalarının ayrı ayrı olduğunu düşünürsek.

a.php

<?php
session_start();ob_start();
if(@$_COOKIE['a'] != 'gezdim')
    setcookie('a', 'gezdim'); //a sayfasını gezdi kabul edelim
?>
b.php

<?php
session_start();ob_start();
if(@$_COOKIE['a'] != 'gezdim')
    header('Location: a.php'); //a sayfasını gezmemis a sayfasına yonlendirelim
else
    setcookie('b', 'gezdim'); //b sayfasını gezdi kabul edelim
?>
c.php

<?php
session_start();ob_start();
if(@$_COOKIE['b'] != 'gezdim')
    header('Location: b.php'); //b sayfasını gezmemis yonlendirelim
else
    setcookie('c', 'gezdim'); //c sayfasını gezdi kabul edelim
?>
d.php

<?php
session_start();ob_start();
if(@$_COOKIE['c'] != 'gezdim')
    header('Location: c.php'); //c sayfasını gezmemis yonlendirelim
else
    setcookie('d', 'gezdim'); //d sayfasını gezdi kabul edelim
?>
Temelde bu sayfalar istediğini karşılayacaktır sanırım.