If you are allowing users to register themselves etc then you will continue to have this problem.
We had the same problem and fix it by not allowing users to register, and importing them from our LDAP server.
(specifically Active Directory)
We achieve this with:
Authentication::LDAP plugin paired with the third party [paid] adSync plugin.