One way to handle this without coding is to use custom entities and filtered look up fields. But if you need to use an option set you would need to use JavaScript to filter the lists.
CRM 2011 Filtered Lookups Explained – and WOW! (Or: Use Lookups, not Picklists!)
Here is an example from the SDK: Sample: Create Dependent OptionSets (Picklists)