Well, now, hang on a minute. Just because there are drunk drivers, doesn't mean that we shouldn't use cars. I don't think that blanket prohibitions serve anyone's purpose, really.
Now, let me first say that I'm a firm believer that OOP is wonderful thing. But, I think that it is best-suited to library code (actually, perfectly suited). With application code, I think it suffers just a bit. For example, I don't think anyone can deny that having libraries of controls and components (Hooray, .NET!) is an excellent develpment, but how many times have we lamented the fact that a particular object doesn't quite do just what we wanted it to do
You see, I think that application code requires a greater degree of flexibility, because by nature it provides the interaction necessary between the various objects. Granted, flexibility can be taken to extremes, like the train wreck which you described. But that was a case of poor judgement, not bad tools.
I don't think that the judicious use of one or two global variables in a given scenario is automatically a cause for condemnation. I think it all comes down to using good judgement.