Solution deployment is really powerful way to deploy your customization to the customer environment. However I encountered small issue that you need to be aware. Again I had working solution that I have installed and upgraded few times. But when I added a lot of new files to my solution I ran into problems (somehow this kind of things just happen to me... am I the only one?).
stsadm –o upgradesolution ... Failed to extract the cab file in the solution.
And then I debugged my solution files and noticed that I had scandinavian letters (ä,ö,å etc.) in my filenames. In this exact case I had one file that had 'ö' in it's name and it resulted to the error above. I tested my cab file (renamed it from .wsp to .cab) with explorer and it displayed filenames inside the cab file correctly. So my MakeCab.exe wasn't the problem. So in order to fix this problem I just renamed my file (and changed the references pointing to it) and created the package again. After that solution upgrade worked normally.
So clearly this indicates that you should avoid using any special chars in your filenames since it could cause you problems at the solution deployment.
Anyways... Happy hacking!