Most of the time, I go out of my way to use Get() and Set() functions to access member variables (especially of other classes), rather than access the variable itself.
But, modal dialogs are an exception (to me). User interface applications generally are single threaded and complete program control is passed to the dialog until it is completely finished. So, especially in the past, I would pass pointers in to modal dialogs. It's not all that dangerous. I just checked whether they are NULL before using them.
However, instead of passing pointers to variables, I now normally pass a pointer to the parent window, through which I can access the Get() and Set() functions of the variable. You're always sure that the parent window is going to be there with modal dialogs (unless something very catastrophic happened -- then you've got bigger problems).
But, to clarify... the part I think is good programming practice is to be in the habit of using Get() and Set() functions, rather than accessing the variable by it's pointer. I don't like the idea of making variables global to the application though, only to the parent of the dialogs that need to share it.
I try to do the safe thing, but I'm not a purist. I guess they call that "pragmatic"?