Assuming that you are running this as a real site in IIS this doesn't surprise me. The user account created for running sites will be significantly different from yours on your local machine.
You really should run the database on a real running instance of a database server (regular SQL Server 2005). Or you could run express but set up an attached database instead of using the dynamic attaching that express supports. Then change your connection string to point to the regular instance and database name instead of at the data file.