I made a cool discovery recently related to this. A user cannot both be the owner of a database and be a db_owner within the database - SQL Server won't let you. Except they can, if you're sneaky!
Grant the user db_owner within model. Then grant the user dbcreator at the server level. Then have the user create a new database. They will be the owner of the database as well as being db_owner within the database. Then revoke db_owner for the user within model. Voila!
Not that useful, unless you're dealing with a vendor installation procedure that uses account A to set up a database for use by account B and assumes that account A has sysadmin. After account A creates the new database, it then sets the owner on the database to account B and then promptly complains that it can't create tables using account A. The above trick let me avoid granting sysadmin to account A.