Hecho, y me funciona correctamente.
 
En la base de datos hice un campo "tiempo" de tipo int. 
Este es el "actualizarTiempo.php" que se debe incluir en todas las páginas 
 Código PHP:
    <?php
//si es usuario registrado guarda el tiempo
if (isset($_SESSION['id'])) {
    $tiempousu = time();
    $registros=mysql_query("UPDATE usuarios SET tiempo = $tiempousu WHERE id = $_SESSION[id]", $conexion)
            or die("Problemas en el update:".mysql_error());
}
?>    
  Y esta es la función "revisarTiempo.php" que la base de datos debe hacer cada X tiempo  
 Código PHP:
    <?php
$registros=mysql_query("SELECT id, estado, tiempo FROM usuarios", $conexion)
            or die("Problemas en el select:".mysql_error());
//tiempo actual
$tiempoactual = time();
//si no debe estar activo de guarda la id
while ($reg=mysql_fetch_array($registros)) {
    if ($reg['estado'] == 1) {
        $tiempolimite = $reg['tiempo'] + 2700;
        if ($tiempoactual > $tiempolimite) {
            $idinactivos[] = $reg['id'];
        }
    }
}
//se modifica el estado de las id
if (isset($idinactivos)) {
    for ($i=0;$i<count($idinactivos);$i++) {
        $registros=mysql_query("UPDATE usuarios SET estado=0 WHERE id = $idinactivos[$i] ", $conexion)
                or die("Problemas en el update:".mysql_error());
    }
}
?>