Si puedes cambiarlo, solo que el nuevo valor lo podrás ver hasta la siguiente carga de un script que la llame, no en la misma...
Es decir, si tu YA tienes una variable de sesion´que se llama "tal" y trae el valor de "SI"...
$_SESSION["tal"]="NO";
echo $_SESSION["tal"];
Te devuelve "SI", ya que la variable de sesión se actualiza hasta que envias los headers...
Pero en la siguiente página, si haces esto:
echo $_SESSION["tal"];
Entonces ya te devuelve "NO"