If you're going to use a metaphor to "protect" your users against a morass of petty details, you can't afford to do a half-assed implementation. You have to do a thorough analysis of your use cases, you have to know what you're provoking them into believing, and you have to anticipate (nearly) everything they might do as a result of that belief.
Metaphors assist enormously in usability. Users can become productive very quickly if something looks and behaves in a familiar fashion, but if it's not complete, the users will get confused.
If you're going to use a metaphor to "protect" your users against a morass of petty details, you can't afford to do a half-assed implementation. You have to do a thorough analysis of your use cases, you have to know what you're provoking them into believing, and you have to anticipate (nearly) everything they might do as a result of that belief.
Metaphors assist enormously in usability. Users can become productive very quickly if something looks and behaves in a familiar fashion, but if it's not complete, the users will get confused.
And angry.