The best way to handle this is to have a zipcode database that checks to see if they zipcode is in the correct state, we did something similar to checkout for some sites and it cut down the wrong state problems
e.g.
https://nutrasupply.com/c-596-perfor...endurance.aspx add anything to your cart and go to checkout, on the checkout page, it asks for zip before the city, state, country or phone, based on the zip the city state and area code are already filled out.
Cuts down on incorrect sign ups. NOTE, another cool feature is that you can get shipping estimates SIMPLY by supplying the zipcode.
check online their are various places selling zipcode databases for about 30 bucks.