We show how techniques from various research areas – most notably hierarchical planning, dialog management, and interaction management – can be employed to realize individualized and situation-adaptive user assistance. We introduce a modular system architecture that is composed of domain-independent components implementing techniques from the respective areas. Systems based on this architecture – so-called Companion-Systems – can provide intelligent assistance in a broad variety of tasks. They provide a user- and situation-adapted sequence of instructions that show how achieve the respective task. Additional explanations are, like the instructions themselves, automatically derived based on a declarative model of the current task. These systems can react to unforeseen execution failures repairing their underlying plans if required. We introduce a prototype system that assists with setting up a home theater and use it as a running example as well as for an empirical evaluation with test subjects that shows the usefulness of our approach. We summarize the work of more than half a decade of research and development done by various research groups from different disciplines. Here, for the first time, we explain the full integration of all components thereby showing "the complete picture" of our approach to provide individualized and situation-adaptive user assistance