In this paper we argue that the key to teaching someone to perform a complex task is to interleave instruction and practice in a way that exploits the synergism between the two effectively. Furthermore, w e argue that computer simulations provide a particularly promising environment in which to achieve this interleaving. We will illustrate our argument by describing a simulation-based system we are building to train people to perform complex social tasks, such as selling consulting services. In particular, we will focus on the system's ability to present real-world cases at the moment that they are relevant to the student's simulated activities. In doing so, we hope to contribute both to the construction of useful teaching system and to the theory of case-based reasoning, particularly in case retrieval.