I have been doing this IT (for this discussion I define IT as server and end user support, not programing) thing for quite a while now (15+ years).
My current gig will be seven years in a few months and what a roller coast it has been! After some cost exercising that was completed in Q1, there is only three of us in IT left and I was made the head cheese. We already ran a flat team where admins have to perform user support as well as their server stuff, so that did not change and in fact is the only way we have survived so far.
Stats: Three IT to about 375 users with computers with about 75% being laptop users that DO travel. We are currently sitting on about 150 servers with 90% of those being VMware virtual machines. Other fun stuff includes two phone systems (on 10+ year old PBX and one 3Com "IP" based system), 60 BlackBerries, we also manage all aspects of the three cell phone carriers our company uses(oh, that means about 40+ cell phones we support), tons of printers, one AS/400, and much much more!
How have we survived? Everything is in ActiveDirectory, making just about everything a virtual machine, picking IT tools that actually help (Track-IT, Rove's MobileAdmin, VMware VirtualCenter, TeamViewer), out sourced the after hours call support to a group that calls whoever is on-call and takes the initial notes, but no trouble shooting(fear not this call center is based in the USA!), keeping everyone involved in everything (cross training is GOOD for your team!)
Having social skills! Everyone (including me) on the team is not a StarTrek/StarWars geek and can have a meaningful conversation with the end users. We work very hard to have a open communication channel with upper-managment and decision makers, so that they know when it is time to buy us new shiny toys so they do not have to add anyone to the pay-roll. You would be amazed at how quickly things go your way after you butter up the VP's admin assistant! "Oh I love what you have done to your hair today! Can you get Mr. Man to sign this purchase approval for me?"
We are also very firm with our users, when they catch us in the hall on our way to one issue we say, "I need you to submit a ticket for what you are asking for and I will come back in a bit." Many do not like it, but we always spend the time to explain why it must be done. Only VP's get around the ticket requests, but hey you gotta scratch their back if you want their support when you need it.
There is no single solution, it's up to each shop as to what's best. However, my general theme has been proper planning, "proper" being very subjective. I guess being in IT for so long, I *constantly* encounter people/departments that simply don't plan as best as they can and just "manage" things, while constantly complaining. I've made progress at getting some to change and reap the rewards, and others just keep doing what they're used to.
...but that's because I got married
It doesn't sound like a terribly difficult problem either. You could use heating, some kind of automatic wiper, spraying with ethylene glycol, or just wiping them off manually every now and then.