According to the manual, the only reason it would return an invalid false would be if the file is a symlink or is protected by safe_mode.
Do you have safe_mode turned on? Is the file a symbolic link?
if(!empty($page) && file_exists('dat/'.$page.'.txt'))
require_once('dat/'.$page.'.txt');
else
echo 'Error! '.$page.'.txt not found in ./dat/';