All you have to do is go to /site, and edit mainfile.php to reflect your site root. It does not matter what folder it is in and you can run multiple XOOPS site in this manner, so yes, it partialy answers your question. You can install and run multiple sites like xyz.com/site, xyz.com/site2, xyz.com/site3 and so on down the line.
So your mainfile.php should have path/to/site, path/to/site2, etc.
When people go to xyz.com, you will have to provide a link to xyz.com/site if you do not use your public root (user/path/to/html/) where /html is your site root.
If you put xyz.com in your mainfile.php, then when users click on home and when you leave the admin panel, you will be brought to xyz.com and NOT xyz.com/site
If you put xyz.com/site in your mainfile.php, then your users will go to the proper place when they click "Home" in your XOOPS site and you will not be redirected to xyz.com when you clike home int he admin panel.
Now, to redirect users going to xyz.com to xyz.com/site, you will need to create an .htaccess file in place it in your site root. All you need to do is put a redirect in your .htacess file like so:
Redirect /
http://www.xyz.com/siteWhats important is your mainfile is set up to go to xyz.com/site, but since you have the redirect, it won't realy matter. It is safer to make sure you have the right path in your mainfile.php and not explicitly rely on your htaccess redirect because if you don't have the redirect and don't specify /site in your mainfile.php, then users will end up at xyz.com, not xyz.com/site
I hope this clarifies things a bit better.
Everything is easy to set up and maintain in this manner, I do it all the time for many reasons.