Let me understand this right and keep it simple>
User logs onto MainOffice01, and GPP's maps the printer MainOfficePrinter
User then logs out, goes to
Production01 and GPP's maps the printer ProductionPrinter
You want to ensure that, on the second machine, they don't get MainOfficePrinter and vice versa.
Except you're doing it with SUbnets etc