I am not sure this is the best method but has worked for us - we make a single dependency for each site and include all the *interfaces* we feel are critical to the connection (usually based on a trace route to the end device) and then decide if we want to set it to mixed or worst status. At this point if an MPLS or wan interface in the parent dependency group goes down we will have all those remote devices show unreachable.
You could get more sophisticated if you want to have another set of dependencies in each location and even for each switch but that's to granular for us. Remember the built-in logic will set all the interfaces of a node unreachable if the node is down or unreachable.
Simplest way could be:
Parent Group (WAN interfaces between NPM and remote site) <Dependency> Child Group (all remote site nodes)
I actually have a child group which is the name of the remote site with all the remote site groups nested into it. The nested groups are populated through dynamic queries so just setting a "system" field on a node will place it in the right group and inherit the correct dependency.