See KdeVsGnome, JavaApplet, etc.
Between your video driver and your desktop is a layer of code that provides windows and widgets, typically seamlessly.
OS specific:
But if the end-programmer spends too much time reinventing buttons, they'll spend too little time on features. And end-users should see a monitor as both a single app with a single look-and-feel, and as many different apps each interacting. So sharing the screen is as much an OS vendor's responsibility as sharing the hard drives.