well "MDI" is multiple open child windows in a parent window.
so you are not looking for "MDI" and if someone else calls it MDI they just got it wrong.
one thing you can do, I have used a version of this in an app is...
setup an Interface and a parent container, then have each "Task" or "Function" be a user control that impliments that Interface.
so you have an app "frame" with a big empty panel.
when a menu item or button bar button etc... need to "open" / "load" the task you create an instance of the user control and dock it in the panel.
you can keep a stack of ITaskPanel (if that's the name of the interface)
and when the user "closes" the one displayed you pop it off the stack and show the new top of stack. that's if you need to chain forms like a => b => c and then back .
or for single tasks the stack can hold the "default Home" control that you return to.
that's one model that works very well.