One of the things that changed from 2000 to 2005 has to do with a new-in-2005 database-level permission called CONNECT. In SQL Server 2000, being a user in a database also meant that you had access to the database. However, in SQL Server 2005, being a user in a database is not enough by itself to grant a user access to it. Normally you wouldn't even notice this since creating a user in SQL Server 2005, either through DDL or through the GUI, will automatically grant your user that CONNECT permission. Is it possible you lost this during the upgrade somehow?
I can recreate your issue by creating a login and mapping the login to a database, and then going to the database and issuing a REVOKE CONNECT TO username. When I try to access that database through SSMS as username, I get the same error message, The database is not accessible.
If you are certain that the user is not orphaned, I would either go into Permissions page of the Database properties through SSMS and verify that your problem user has a Grant for the CONNECT permission, or I would run the following query:
SELECT pr.name, per.*
FROM sys.database_principals AS pr
JOIN sys.database_permissions AS per
ON pr.principal_id=per.grantee_principal_id
WHERE pr.name = 'your username here'
AND per.permission_name='CONNECT';
If no rows are returned, then your user needs to have the CONNECT permission added back in order to access the database as expected.