I don't know about Citect, and it probably depends on the actual communication server you use, but WonderWare and RSView, using an OPC data server both allow you to use program-scoped tags.
Just off the top of my my head, the general syntax is something like:
Program:Main_Program.TagName
I usually put most of my HMI communication tags in Controller scope, but not always.
I also find it much more efficient overall (no matter the scope) to make my actual HMI tags part of a one or (usually) more UDT's, just to keep the namespace from getting clutterred.
I also almost always make Physical I/O alias tags to be program scoped (again, to prevent clutterring up the Controller Namespace).