I've migrated a few large databases recently from SQL 2000 to SQL 2005. The method I used was to perform a full backup of the 2000 database, restore this database on the SQL 2005 server, and then apply differential backups and transaction log backups to the SQL2005 to get the database up to date. The database on the SQL 2000 server will need to be in FULL recovery mode for this strategy to work. You can get the target SQL server ready by restoring backups and logs with the NORECOVERY option. The downtime period to the users can be quite short depening upon the nature of the system. At an agreed time, the users stop using the system, so you the put the database on the SQL 2000 server into read-only mode, take a final log backup, restore that log on the target and then bring the database online on SQL server using the RECOVERY option in the RESTORE command.
You will probably want to script logins from the old server to copy across to the new one. You can search for more information on using the sp_help_revlogin stored procedure to do this. Once logins have been created on the SQL2005 server you might want to run sp_change_users_login to link any SQL users in the database to logins you have created.