How can I create a field to hold data on users' countries and states? I'm trying to create a content type that has multiple countries available to be selected and then multiple states/territories within those countries based on the country, but I'm not sure how to best accomplish this.

When a user is creating a piece of content they need to be able to select their country, then based on the country they select, they can select their state or territory with only those states/territories for that country available as options. I have two such countries that will have multiple states/territories - the U.S. and Canada.

I'm creating a text field using the field module that lists all the U.S. states when a parent item is selected using a list (text) and a "select text" drop-down. I also need to create a way to present the user with the Canadian territories when selecting Canada as the territory.

Right now I have two fields - "Country" and "State". Can you recommend the best way to accomplish presenting the user with the correct options for the state/territory based on their country selection? I'm drawing a blank on this one.
In Drupal 7 you should use the dedicated addressfield module for that purpose.
The composite address field provides a country drop down box with other address fields such as state loaded via ajax depending on the selected country.
USA

Canada

It's a requirement of the Commerce module for address selection.
You can hide some of the address sub-fields if needed.