You can use security domains to manage user's access to different parts of Sitecore, for example, if you have multiple websites within a single system.
A Sitecore domain is a collection of security accounts (users and roles) that you can administer as a unit with common rules and procedures. A domain is used to collect security accounts that have some logical relationship, for example, all the accounts that have access to use the Sitecore clients could be stored in the Sitecore domain, whereas all the accounts with access to the published website could be stored in the Extranet domain.
If you are using existing domains then creating users programmatically is fine.
But by adding a custom domain, you can have your users in the custom domain, and you can distinguish between them, also it will be easy to manage them as well.