Hi Frank,
Relationships between data tend to be either 'master/detail' (such as between your 'users' and 'contacts') or 'drop down lookups' (for want of a better expression, where you are just picking a value from a list - such as your 'states').
With 'dropdown lookups, the data tends to be static in nature and end-users only ever need to see it through comboboxes. For that reason, you don't have to use discrete forms that are designed with your users in mind; rather you can use a common form that holds ALL your look-up data and it can be maintained using editable tablegrids.
Using your example, you currently have 2 forms for your 'state' data. If you were to also use look-ups (which would be my preference) for 'country', 'relationships' and 'male/female', that would then add up to 8 forms. Throw in another few possible lookups ('salutations', 'zip codes', cities' etc) and the number of forms required quickly grows (not to mention the time it takes to create and test them). All of this can be done using just one form and editable tablegrids.
Have a look at the attachment and the 'lookups' button on the 'start' form for an alternative way of doing things that is a lot quicker to develop).
One final suggestion is the use of 'parent' comboboxes (that you may or may not be aware of) - this is a way of linking comboboxes together. For example, if you select 'Canada' as a country on your contacts form, you only want to see Canadian provinces and not US states etc.
Obviously, you could extend this 'parent' combobox feature all the way down to countries > states > cities > zip codes etc. It all depends how 'tight' you want to be with your data validation but it can make it a lot nicer for the end-user to only see relevant selections.
Maybe gives you some ideas.
Derek.