Regarding California, yes, there's a neat delineation in zip codes that I've found useful in the past - zip code greater than a certain number = north, and less than = south.
Perhaps with geography you could have a custom field for region, and a smart campaign that looks at "Lead is Created". Whenever a lead is created with a specific country value, use a change data flow action to update their region value.
If you have SFDC though, these are FAR easier to do in there.