The .NET framework can be thought of as an extension to the API and functionality of Windows that certain programmers can use instead of or as well as the standard Windows API.
They aren't programs themselves, but they are actually interpreters that allow other programs written using the Microsoft.NET framework to take advantage of the functionality that the .NET framework offers.
Think of it in terms of the Flash player you (most likely) have installed on your system, integrated with your browsers. For a webpage to successfully display to you the flash part of the webpage, it needs to use the interpreter for its flash code, in this case the flash player.
It won't do you any harm to keep it on your system as long as it is fully updated - if you run Microsoft Update you may well find that there is an update or two for the .NET framework.
While this is more complex than the flash example above, it can be thought of in a similar way - alot of newer programs can be written to take advantage of the .NET framework, and as such, will require you to have it installed on your system so that it will function correctly.
Removing them may cause some programs that you currently use to stop functioning (for instance, if you use an ATi graphics card and you have the Catalyst Control Center installed, this application uses the .NET framework. Removing it from your system means that the application cannot load).