This should do it. Just change the first line to make each of the four versions.
It creates the temporary Path.txt file in the current folder so it will fail if the current folder cannot be written to (e.g. non-admin account backing up Program Files). You could modify it to create the temporary Path.txt in the temp dir if that is a problem, but then you should be careful not to run two copies of the button at once, or to make sure that the temp file paths are unique, else the buttons will overwrite each other's paths.
See here if you don't know what to do with the XML code below.
<?xml version="1.0"?>
<button display="both" separate="yes">
<label>Zip to Backup</label>
<icon1>#addtozip</icon1>
<function type="batch">
<instruction>@set zipname={sourcepath$|nopath} (Program Files) ({date|MM.dd.yy})</instruction>
<instruction>@set zipdest=M:\Master Archive\Software\.backups\</instruction>
<instruction>@runmode hide</instruction>
<instruction>@firstfileonly</instruction>
<instruction>@nofilenamequoting</instruction>
<instruction>echo {sourcepath$}>"{sourcepath$}\Path.txt"</instruction>
<instruction>Copy ZIP TO="{$zipdest}" CREATEFOLDER="{$zipname}" FILE="{sourcepath$}\Path.txt"</instruction>
<instruction>Copy ZIP TO="{$zipdest}" CREATEFOLDER="{$zipname}"</instruction>
<instruction>Delete FILE="{sourcepath$}\Path.txt" QUIET</instruction>
</function>
</button>