this is set first by the DirectoryIndex variable in your apache configuration (or apache site configuration) file and is also set by the rewrite rule which sends (almost) everything to /index.php
For lighttpd: the index-file.names and url.rewrite-once variables are what do it.
If the request <b>www.domain.com/index.php</b> causes eZ publish to return <b>module not found</b> screen, then my guess would be that your server rewrites it to get rid of index.php and the eZ module is expected directly after the domain, for example <b>www.domain.com/content/view/full/2</b>, and www.domain.com being your root page. And some little piece may just remain misconfigured. But that's as long as we've got all the pieces :)