2
I would recommend developing a module that asks for this information after they register.
You could modify the XOOPS core, but then that would make it hard to upgrade when new versions come out.
I have already developed a custom system that surveys the user on their first login. Stores this information in the database related to the user account who entered the info.
The XOOPS user system is streamlined and very good at doing what the minimum required actions are. Although it still needs a reminder question for people changing emails.
Other than that, I wouldnt recommend changing the core of it. Just append to the login process with a survey function, and you should still arrive at the same solution that is wanted.
Hope that helps,