I am doing some reading up on Cisco's hierarchical qos implementation, but I am struggling to see when/why I would ever need to use it?? Can someone provide some real world examples to clear this up??
Looks like you've gotten the concept.
For an actual implmentation:
You probably should match just against remote network (this would also cover situation one remote bouncing off hub to another remote).
access-list 100 permit ip 10.10.10.0 0.0.0.255 10.10.11.0 0.0.0.255
access-list 100 permit ip any 10.10.11.0 0.0.0.255
Within your child policy (if supported), using percent based bandwidths is often more flexible.
On many platforms/IOSs, FQ within class-default can take bandwidth from defined classes (except LLQ classes).
You should use WRED with great care and understanding. Values of 100..200 are usually excessive for 1.5 Mbps.
Not 100% positive, but on many platforms/IOSs believe shaper might not account for L2 overhead. For really accurate shaping, you'll need to shape slower to allow for this. Also, when working with LLQ traffic, you might need to decrease Tc.
BTW, on many(?) platforms/IOSs, you can directly match against DSCP values (i.e. don't need ACLs 102..105). Also, if you used named ACLs for 100 and 101, you might save the ACL remark statements.