When to use CDC to track history?
Firstly, 


  Change data capture is available only on the Enterprise, Developer,
  and Evaluation editions of SQL Server.


So that may decide for you if any of your customers will not have the enterprise editions, or you don't yet know you will be using the enterprise editions.  (As the spec includes "multiple future applications" this may be an real issue for you)

Unlike triggers it is not real time, this is both an advantage and a disadvantage.    Using triggers always slow down an update.

I worked on one system when we used triggers (generated by CodeSmith), as well as tracking all the changes to the records, we also linked the changes together to a “history” table that included the module of the application that made the change, and the UI item the user used to make the change.

However you may be best solving this at the application level, by say writing all update to a message queue that is then replayed to create a database at any given point of time, see Temporal Patterns on Martin Flowler blog for a good overview of options.