The answer of "why" is easy; DV, the format that iMovie uses for everything it does internally, doesn't have square pixels. That is, it uses a format that is 720X480 pixels, even though the correct proportions for the image are 4:3 (640X480, 320X240, etc).
This works fine because TVs don't have square pixels, either, and you get a better image by displaying 720X480 on a TV than you would from 640X480. Unfortunately, when you export at full quality from iMovie, it does give you full quality, but doesn't set the aspect ratio of the movie correctly, so when played on a computer monitor, it's stretched horizontally.
There are two possible solutions. The easiest if you're exporting to MPEG4 is to export as 640X480 instead of full size; you won't loose much resolution, but you will end up with the correct size image. The other option is to take the movie you've exported, open it with Quicktime Pro ($30 from Apple, and well worth it), and resize the image from the 720X480 to 640X480, then save that. You've then got a full resolution image scaled into the correct aspect ratio.
Note that if you're exporting as a .dv stream, you get what you get; the DV format (with NTSC) won't let you use any other resolution, and since it's a .dv stream instead of a quicktime movie, you can't use Quicktime Pro to save it with a different aspect ratio. You'll just have to resize it to a different aspect ratio when playing it (you can do this manually in QT Player by holding down Shift when dragging the corner), or play it with a player that knows what to do with .dv video.
Hope that helped.