Smoke-free policies are entirely legal and enforceable. There are multiple ways to enforce a smoke-free policy. They all begin with a clear policy where the penalties for violating the rules are clearly outline outlined. Ideally, a smoking violation should be enforced like any other lease violation.
You may choose to forfeit the security deposit of a tenant who violates your smoke-free policy. Make sure your tenants are aware that they will be held financially responsible for violating the policy and the cost of repairing any damage associated with smoking in an apartment can be deducted from their security deposit.