include file does exist, hence the reason it dose work sometimes.
Sometimes, IIS will include a file of the same name from a different website that is on the same server.
It is as if all php files are cached and IIS chooses any one of those files at randomn, instead of the one that is part of the website.
therefore, if the server has 5 websites that have the same file called menu.php and on any one of the sites you include menu.php IIS will serve up at randomn anyone off those 5 menu.php files.
understand now?