Well, you can combine the two methods... have the access levels, and then a "special" list of names... for example, say you wanted to give either "level 3" users OR johndoe/janedoe access to page ID 5 (or however you identify certain areas), you could do this:
$query = 'SELECT userIDs FROM special_table WHERE pageID = 5';
$exec = mysql_query($query);
$userIDs = explode(',', mysql_result($exec, 0)); // assuming you have a comma-separated of userid's allowed
if($clearance <= 3 || in_array($_SESSION['userID'], $userIDs)) {
// allowed
} else {
// denied
}