Here is the test case that reproduces the problem on our configuration.
Session auto start = 1...with that said...
============================================
file1.php
<html><body>
<form name=body action="<? echo $PHP_SELF ?>">
<? echo $SESSION['sample']; ?><br>
<? $SESSION['sample'] = "FOO!"; ?>
<input type=submit value="Submit">
</form></body></html>
file2.php
<html><body>
<form name=body action="<? echo $PHP_SELF ?>">
<? echo $SESSION['sample']; ?><br>
<img src=some_non_existant_image.gif>
<? $SESSION['sample'] = "FOO!"; ?>
<input type=submit value="Submit">
</form></body></html>
1) browse to file1.php: you will only see a "Submit" button.
2) click submit: "FOO!" will appear followed by the "Submit" button.
This is good.
1) browse to file2.php: you will see a broken image link and a "Submit" button.
2) click submit: you still see the same thing.
This is not so good.
Symptoms:
The /tmp/sess_* file on the server contains "sample" as a registered variable, and never loses it. So the variable stays registered.
But when you execute file2.php, the value gets lost.
Hmmm.....