5
That is the host problem rather than your problem. I have encounted this situation before.
Unlike CGI, PHP run as a common user, i.e. Apache. If your host did not allow "apache" to write to your home or if they set the quota for "apache" on the location that contain your home and the quota has exceeded, then you will notify that XOOPS cannot write to your home even if the permission is set to 777. And the adminmenu.php has to be rewritten anytime you install new module, or do some system admin job, the templates_c has to be generated as the first time user access a page or when you modify the templates. You probally could not do any uploading as well.
There are two solutions. The first is fighting with your host if you can. What they can do is increase apache quota on your home (but this is not a good sollution, because the other site running on the same host can use this quota), or they has to patch their apache (this is what my host did) with some patches that allow your site run as your user name rather than "apache", so XOOPS can write as much as your available quota.
The second choice is applied only if you cannot negotiate with your host. Normally, linux provide temporary location on /tmp or /var/tmp, and there is no restriction on those location. You have to modify some where in your XOOPS in order to change templates_c/ cache/ and uploads/ to those location (hope you can do it).
Good luck,