I have also been struggling with this issue for ... oh, a long time. I would first get a FastCGI error (timeout) and then, upon refreshing my browser, get a "Could not find a top-level course!" error message. FastCGI is set to time-out after only 70 seconds, I think I read somewhere, much, much too short for a giant install like Moodle. It's normally set to this default to prevent waiting for a CGI foul-up that will never actually resolve on its own. So ... I deleted all tables in my database using "PHPMyAdmin", available free for download. I could have just deleted the database itself instead - either one would have done. I then inserted "ActivityTimeout=600" (10 minutes) into the PHP section (bottom) of fcgiext.ini (without the ";" symbol) (found in the c:- windows- system32- inetsrv- folder). This, I thought, should prevent a timeout. Same results, but something new - I saw more database tables were created - many more than before - which suggested that it was actually still installing but got interrupted after 5 minutes. According to some webs, Moodle 2.something setup should take about 15 minutes on some computers, so my thinking is that 20 minutes ought to do it. I changed the "ActivityTimeout" setting to 1200 seconds (20 minutes). I went back to the URL of the Moodle site and began installation again, building the database tables from scratch. Guess what - SUCCESS. My database was built, and FastCGI didn't time-out. I hope this helps. Good luck to everyone in the wonderful world of DIY websites.