When you make a screen shot, it is initially kept in the computer memory as a bitmap, which can be very large. A typical screen size of 1280*800 contains about 1 million pixels. With one or two bytes for each of the RGB values, you get the kind of sizes you mentioned.
Here are a few things you can do:
1. Don't copy the whole screen, if you only need a certain window.
Just PrtSc will copy the whole screen.
Alt+PrtSc will copy just the currently active window. (very useful to copy, say, a dialog window).
2. Use compressed file formats
1. Open mspaint.exe
2. Make sure the default image size is small. I use 16*16 pixels. (In the menu: Image-Attributes)
3. Paste the screen shot. The image size will automatically expand to fit the pasted picture.
4. Save the screen shot in a compressed format. For photos, jpg is best, and many people use it for general screen shots, as well. But you may get crispier results with gif or png (just keep an eye on the filesize).
Good luck!
Edit: Added list format for clarity.
2nd edit: changed from ol (unsupported here) to ul
3rd: reverted to Manual list.