Are there other possibilities besides IIS for hosting web sites and web services based on ASP.NET, which are recommended by Microsoft for small-scale environments?
Ohad has a tutorial on getting it to run on apache: asp.net on apache. I'm not really sure how well it runs but it works. I don't think Microsoft recommends anything other than IIS, but why would they. For most small scale uses a Windows Server will have everything a small site needs already packaged in. I'm not sure why you need to find alternatives unless you don't have a windows server available, in which case, the apache port should work for you.
You can host your own web server in-process within your own application using IIS 7's Hostable Web Core. And, of course, you can create your own app that listens to port 80. However, the complexities involved probably doesn't make it worth while.
It is also possible to host web sites and web services based on ASP.NET in Cassini Web Server. Here is web site of Cassini Web Server. The overview from site:
"UltiDev Cassini is a free, light-weight and redistributable web server that can host ASP.NET 3.5, 3.0, 2.0 and 1.1 applications and static HTML sites."
Of course it is not recommended by Microsoft, but this web server can be embedded to the application setup package.