Or this - doesn't drop users who own a schema
declare @sql nvarchar(max)
set @sql = ''
SELECT @sql = @sql+
'
print ''Dropping '+name+'''
execute master.dbo.sp_revokedbaccess '''+name+'''
'
FROM
sys.database_principals
WHERE type <> 'R'
AND NOT EXISTS
(
SELECT 1
FROM sys.schemas s
WHERE s.principal_id = dp.principal_id
)
ORDER BY name
execute (@sql)
.. yes I know it was a couple of months back but I am using it today.