Ok, first of all, if one of the installer/updater products out on the market fits your need, you should probably use those.
That being said, I've had the pleasure of building a system like this myself not long ago.
Yes, our installer/updater included two parts on the client side so that:
~ Part A would connect to the servers where the latest version is stored and published; if a newer version of Part B was available, it would download it and kick it off
~ Part B would focus on installing/updating the actual application (and could download and install updates to Part A).
Aside from that, I'd recommend always considering the following 4 operations in the installer/updater:
The Rollback one is critical when your users have a system that automatically updates overnight.. if an update every messes up, they can rollback and continue working while you fix the issue.
Finally, the installer/updater should try and be agnostic about the application it installs/updates, so that, when that application changes, the installer/updater system is impacted the least possible amount.