Within MDT you can define your specific settings via computer definition, Make/Model, Location or Roles. Also Applications in LTI or Packages in SCCM can be defined this way. But instead of assigning the applications/packages directly to a location or computer I suggest to use roles instead.
This means you define a role per application you would like to distribute during your deployment process with the appropriate applications/packages setting. Then you assign this role to all computers, model or locations which shall have this application installed. At the beginning you will have an additional step for each application. However doing so has two big advantages:
Far more flexible on Updates
Just imagine you have been deploying MySuperDuperSoftware Version 2007 so far as part of your thin image. But only half of your locations required this software. So you created a whole bunch of locations and assigned the application. Now the vendor of MySuperDuperSoftware brought out a new version and you would like to install the new version on any future deployment. You would have to update each location either by hand or you have a helpfull sql guy on your side creating a neat update statement for you.
Though if you would have assigned the MySuperDuperSoftware Role to each of this locations, you would need to change it only once. In the Role itself. The rest can stay.
And this idea is not restricted to pure Updates of the same software. Just define it as an abstract Role like "PDF Printer" and you can easily change from the current one to a different vendor without the need to at least update the description to reflect this change.
Install several applications in a row and correct order
Some applications like a couple of Autodesk products have a whole bunch of prerequisites which needs to be installed first and sometimes also be installed in the proper order. So you just define this bunch of prerequisites once in the correct order and now assign the role to the location, model, etc.
After defining a role for each application (or bunch of applications) you just have to configure your customsettings.ini in a way that it processes the role assignments before the RoleApplications / RolePackages step.
Priority=...,ComputerSpecificRoles, ...,MakeModelSpecificRoles, ...,LocationSpecificRoles, ...,DynamicRoles, ...,RoleSpecificApplications,RoleSpecificPackages, ...
The gather process will even take care about duplicate applications which can e.g. happen due to some roles with duplicate Prerequisites. Now for us this doesn't matter anymore.