Just wanted to share my experience on this topic. First make sure that no connections are open to SQL Server Express 2005. Then, attach the database from the App_Data directory. It will come up "In recovery" mode, or at least it did in my case. As a matter of fact I was working on a brand new installation, on XP.
First, open a query window and run DBCC CHECKALLOC by itself. This will give you an indication that everything is fine with your DB. You probably already knew that, since your site was (hopefully) running.
The interesting part was that at this point, I was getting ready to run DBCC CHECKALLOC (0, REPAIR_ALLOW_DATA_LOSS). When I actually ran the command, I got an error message stating that I need to have the DB in "SINGLE_USER" access mode. You can switch to this mode by opening the DB properties window, then Options/State/Restrict Access.
In my case, the kicker was that when I switched to SINGLE_USER mode and closed the properties window, the DB mounted correctly without me having to do anything else. Later I switched back to MULTI_USER, and everything kept on working just the way it should.
Andrei