Yes, XOOPS requires write access to the server.
Like many CMSs, XOOPS uses a caching mechanism to temporarily store compiled pages. The benefit of this is increased speed. The downside is the requirement of being able to write to disk.
The 3 folders that are recommended to have write access are
The cache/ folder stores your compiled admin menu (2.0.x branch) as well as any module cache you configure.
The templates_c/ folder stores your compiled theme as well as Smarty templates for XOOPS and any third-party modules you've installed.
The uploads/ directory stores files, like avatars, that you have uploaded to the server through the XOOPS admin or third-party modules.
If your web hosting provider does not allow scripts to write to disk in your web root, but has defined a directory outside of the web root where temporary files can be written, if they are running a *NIX operating system, you can use the following commands to create a symbolic link (think shortcut) to the directory where your scripts have write access.
//First, make the directories you will link to
NOTE: It would be a good idea to create a folder using your name inside the designated writable folder, then create the cache, templates_c, and uploads inside it. This will help avoid any confusion and/or security issues if another user needs to install XOOPS on the same server.
//Change directories until you are in your XOOPS root directory
//Now link the writable folders to your XOOPS install
ln -s /path/to/writable/folder/cache cache
ln -s /path/to/writable/folder/templates_c templates_c
ln -s /path/to/writable/folder/uploads uploads
If you do not have shell access to your hosting provider's server, you could also contact the Adminitrator of the server and request that they setup the symbolic links for you.