This website was the only reference I could find to this problem but it was left unsolved...and here I am 3 years later.
My problem was very similar except that the session was disappearing in the second level included file, that is, the file was being included correctly but the session was being lost.
main file-->include file1
file1-->include file2
That is the session was ok in file 1 but disappeared in file 2
Then I found by rigorous debugging that I had defined some constants retrieved locally into variables for repeated use in making URL refs inside links like
href="{$urlBase}pathToFile"
and then I had used one of these vars similarly to access include file 2 so
include "{$urlBase}pathToFile";
It appears the problem with that was that it used url including to access the include file. (I have allow_url_include on in the php ini file for now although it can be seen as a security risk) so that when file 2 was included its path resolved to
http://{urlBase}pathToFile
whereas for file 1 the path resolved to something akin to
/var/www/htdocs/pathToFile
So for some reason including via the full path is different from including via url.
Once I used the full path to include, the sessions worked just fine in both files.
I have been unable to find a reference to this issue on php.net. The closest I came was on this page:
http://www.php.net/manual/en/function.include.php where it says
"This is not strictly speaking the same thing as including the file and having it inherit the parent file's variable scope; the script is actually being run on the remote server and the result is then being included into the local script."
of course here we are talking about the local server but otherwise it applies.
The 'inherit the parent file's variable scope' reference is I suspect the salient section.
Anyway hope this helps someone.
Johnny