Jeff - from business prospective I have to deal with situations when a Customer of on-line Assessment system could bring their own definition of their curriculum (and trust me each of Registered Training Organizations, Universities and Colleges has their own unique way ;-)), so we do not know upfront how many levels they would have (For instance it could be Courses, Subjects, Units, Skills, Competencies etc.).
By some other reasons (that escapes me) business decided to squeeze into this hierarchical entity something else - for instance Program/Project/Milestones hierarchy.
As a result I have to build a generic "infrastructure" that allow client in run-time to set up a brand new hierarchy type as a template, select existing template and just use it.
Hope that my explanations did not totally confuse you