We wrap our packages in what we lovingly call core scripts. They are VBScript that handle all the variables. We can literally port a package to any server at any time and the "core script" is smart enough to know where it's being executed from and change all variables accordingly.