I've recently been troubleshooting a WinForms app under Citrix which had some really fluky behavior - CLR crashes, disappearing processes without errors, and missing icons. All this ended up pointing to low GDI resources, which brought back memories of Win 9x GDI limitations.
But in fact, there are still significant GDI limitations in modern version of Windows as well: Win2k has a limit of 12288 GDI handles, and Win XP/Win2k3 have a limit of 65536 GDI handles. And unfortunately, the errors are not handled well - they manifest themselves as an unstable system!
There is a great article here that has tools (with source!) to monitor GDI usage in detail -
http://msdn.microsoft.com/msdnmag/issues/03/01/GDILeaks/