How can I filter the entire contents of a site by region?
You can still use views then just use the views global filter module. This way they only enter their location only once then every other view on the site inherits this filter.