This module can assign customer to specific group by location.
You can set rule just with zone, zone + country or zone + country + state.
There is few options to check rules: Check by: first address OR last address. By last address means that all new created addresses will be checked and groups will be reassigned.Check on edit: if first option is selected "by first", then this option will check rules when first created address has been edited. If first option is selected "by last", then this option will check every edited address(last edited).There also is option to keep or delete groups from customer if it doesn't meat rules requirements(module is always tracking his last action).You can set customer groups as default.
Also this module has multi store support. You can add rules for groups as many as you want.