If you're having that problem then you're not using the Minimize command correctly. Never use Minimize when you intend to switch between apps.
You only use Minimize when you explicitly do not want to see a window when its app is active. Typically, it's a rarely used command, but it can occasionally useful when you're working in an app that has a lot of windows open (like, say, Terminal) and you want to set some of the windows aside for awhile.
More often, you should use the Hide command. (Command+H, select "Hide" from the app menu, or Option+Click a dock icon.)
This will hide the active app and activate the next app in order. When you return to the hidden app via Command+Tab, the app and its windows will be restored just as you left it.
In the old NeXTSTEP days, the Hide and Quit commands were top-level menu buttons and always just a single click away. It's unfortunate that those commands were moved to a sub-menu in Mac OS X.
I actually wrote a little app that puts Quit and Hide buttons in the top left and right corners of the screen. It gets a lot of use.