Hola:
Mira yo creo que deberias de hacer una condicion en tu menu que si es ese usuario en especifico o si tiene perfil de administrador te permita mostrar esa opcion del menu y si no tiene los permisos pues que no lo muestre.
por ejemplo:
Código PHP:
session_start();
$perfil=$_SESSION["perfil"];
$modif_art="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica articulos</b></a>";
$modif_usu="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica Usuario</b></a>"
if($perfil=='01')
{ $ejecuta_arch="<li><a href='crea_sql.php' target='centro'><b><font size=6>E</font>jecuta archivos</b></a>";
$alta_usu="<li><a href='inicio.html' target='centro'><b><font size=6>A</font>lta Usuario</b></a>";
$modif_edo="<li><a href='inicio.html' target='centro'><b><font size=6>M</font>odifica Estado Compra</b></a>";
}
echo "$alta_usu $modif_usu $ejecuta_arch $modif_art $modif_edo";
esto es parte de un menu que tengo implementado y me funciona perfecto.
yo uso distintas variables de sesion y la verdad no he tenido ningun problema con el tiempo de duracion de estas.
De preferencia guarda el valor de la variable de sesion en una variable comun para que no tengas problemas por si caducan como mencionas.
Espero y te sirva de algo...