[eluser]Mirage[/eluser]
The 404 html file is a php file. show_404() outputs that file. So all you need to do is write some php code in the error_404.php that gets checks the login status and then itself executes further output.
You do want to be careful in what you put in there of course, because if you subsequently call stuff that causes the framework to trigger a show_404(), you'll enter a race condition.
Cheers,
-m