Since posting the question I've figured out that the margins can be set in the "Printout" environment by specifying "Printout" as the second argument to StyleData[] in the notebook's stylesheet. However, when I take this approach, all other font settings revert to those defined in the Default.nb stylesheet for all environments other than "Printout". One way around this is to duplicate all my "printout" style definitions and, in the duplicate, change the second argument of StyleData[] from "Printout" to "Working". But this is a pain and I suspect there's a better way.
What I can't figure out is why some style settings (e.g. font name, font colour, etc.) appear to propagate across all environments whilst others (e.g. CellMargins) do not. And this raises the question of whether it's possible to change which settings are propagated.
Any pointers/suggestions would be much appreciated.
Ian