When a CAB file fails to install, we pop up an ambiguous error message. We could put more detailed info there (and there is a bug sitting in our database saying we should investigate doing so) but the reality is that when a CAB fail, there's really nothing the typical user can do to fix it themselves... they are at the mercy of the developer who needs to provide a modified CAB file.
That said, it's obviously important that developers be able to diagnose these failures if they are reported by end users. For this, we spit out a detailed log file which you can find in \Application Data\Volatile\setup.log. It's long and it's XML so skimming line by line can be tedious. To quickly find out where the installation failed, just do a quick search for the word "error" in that file. There are a few edge cases where installation fails before we get a chance to spit out this file but I've found that this trick is almost always enough to point in the direction of what went wrong.
Oh... one other thing to check: the most common reason I've seen for users reporting installation failures on Windows Mobile 5 is the new "timeout" mechanism. When wceload shows its "we don't know where this came from. do you really want to install it?" and the user doesn't respond within several minutes, the installtion fails and we show that ambiguous error message. So when someone reports that a CAB failed, I first ask them to try again and respond to the prompt quickly. If it still doesn't work, I ask for the log file.