OK, so I'm experiencing the same exact problem described by the initial poster. My configuration is on a clean install of Mac OS X 10.5.3 Server with all apache settings set from the Server Admin app. My CGI scripts can execute, I can't get directory indexes working, and includes don't work either, instead only displaying the html comment in their stead.
Based on previous OS X Server experience, I remembered that previous Server Admin versions compartmentalize site settings and tries to not alter the primary httpd.conf much if any (10.5 seems to modify the http.conf extensively). So instead it creates little conf files for each site. I had a look at some of mine. (You can find yours with `locate .conf` from the shell.)
My site conf files were in the default location:
/private/etc/apache2/sites/0000
any_80.conf.default
/private/etc/apache2/sites/0000
any_80site1.com.conf
/private/etc/apache2/sites/0001
any_80site2.net.conf
/private/etc/apache2/sites/0002
any_80site3.org.conf
Much to my confusion, the conf files contained the following, which if loaded properly, would of course allow includes, indexes, and cgi to work.
<Directory "/Library/WebServer/Documents">
Options All +Includes +ExecCGI +MultiViews +Indexes
AllowOverride All
<IfModule mod_dav.c>
DAV Off
</IfModule>
</Directory>
Also in my settings, I've enabled the shtml handler mentioned in another post and set the type (which are also listed in the .conf file)
It seems that not only do includes not work, but any SSI directives. No echos, no execs, no includes, nada. I don't really know what's wrong and why the settings don't work.
CORRECTIONS!
While writing this post and looking around inside files and whatnot I realized my specific problem relates to recursive includes (one include file that includes other files (not the same file including itself; I'm not crazy :] )). Anyway, I keep my global include files in an aliased directory so they can be shared across multiple sites. Well, when Server Admin creates aliases to directories, those directories don't (and couldn't) inherit the permissions of the primary document root. So essentially, they have no <Directory> tag in the site.conf files. As soon as I added one, sadly manually, and restarting the Web service, like magic all the includes started popping in.
Ideally in an update to Server Admin.app, those directory options checkboxes could be added to the new/edit alias dialog. Then you wouldn't have to modify the site file manually, or use .htaccess files; however that may be a better solution anyway.
Recursive include support was added to Apache in 2.0.
P.S. I'll leave the top part of my post for informational purposes.