PMFJI....I think "most" of the time, PUBLIC/Global variables aren't necessary.
But I'd stop short of saying 100% of the time.
I don't think they were necessary in the example where Mike Y provided a nice clean solution - but instances where you have scalar values that need to be visible across the entire app are served by a global setting (e.g. Company Name, current user signed on, etc.) In most .NET apps I had a global class of properties for such values.
Just my 2 cents