​With our Image Autosizer plugin, you can specify that images in your /images/uploads directory should automatically be scaled to 800x600. You can create another upload location that is constrained to 1024x768, and another that uses 640x150. Feel free to configure every upload directory independently. The resize operations occur when you select an image and save the entry.
Why did we write this? In the early 2.x releases, ExpressionEngine allowed you to reject any image uploads that were too large. With the latest releases, Ellis Labs has added the ability to resize images manually within the upload dialogs but requires several additional clicks. We feel that this is too confusing for non-technical users (with 16 MP cameras) who are used to the details being handled for them.
We typically use ImageSizer for this task in-house but it does have its drawbacks. One of them is that it consumes a lot more memory than we think it should. On some server configurations this leads to a situation where ImageSizer runs PHP out of memory while the EE administrative interface can handle a resize flawlessly.
It may be nice to have someone update ImageSizer but for now we have written a more general-purpose solution.