Your on the right track. The cups daemon is very versatile, you can set up classes, ACLs etc... Which I would think should work. I don't know your environment, but you say "different locations." Can you define that a bit more?
If I remember correctly you can also permit users on a group or by user basis as well.