Thanks for all the comments, folks.

Gilbert's point that it's easier to make a non-linear course is worth further investigation, since many of the guiding instructional principles (e.g. ADDIE) are rather linear. I had mentioned agile programming as a model for instructional development, but are there any widely used models for non-linear training or educational design? Heck, we still have a limited selection of models on how to design performance support systems.

Maybe there's a business opportunity here ;-)