I use WebLoginPE and it is pretty easy to allow for extra fields. Here’s my snippet for a Users Profile:
[!WebLoginPE? &type=`profile` &profileTpl=`ProfilePE` &customFields=`email_password,company_telno,company_faxno,company_position,company_address`!]
notice the customFields!
In order to use the custom fields in the form my chunk for the profile (ProfilePE) includes this:
<fieldset id="email_password">
<legend id="email_password">Email Password</legend>
<input id="email_password" type="text" name="email_password" value="[+user.email_password+]" /><br/>
</fieldset>
<fieldset id="company_address">
<legend id="company_address">Company Address:</legend>
<textarea id="company_address" name="company_address" rows="5">[+user.company_address+]</textarea><br />
<!--<input id="company_address" type="text" name="company_address" value="[+user.company_address+]" /><br/>-->
</fieldset>
<fieldset id="company_telno">
<legend id="company_telno">Company Tel No:</legend>
<input id="company_telno" type="text" name="company_telno" value="[+user.company_telno+]" /><br/>
</fieldset>
<fieldset id="company_faxno">
<legend id="company_faxno">Company Fax No:</legend>
<input id="company_faxno" type="text" name="company_faxno" value="[+user.company_faxno+]" /><br/>
</fieldset>
<fieldset id="company_position">
<legend id="company_position">Company Position:</legend>
<input id="company_position" type="text" name="company_position" value="[+user.company_position+]" /><br/>
</fieldset>
The extra data is stored in a new data table "{prefix}_web_user_attributes_extended".
I’m not sure whether the customFields works with the users registration I’ve never tried it. As for checking some data in a custom field with something else I have a couple of ideas but I feel it may involved writing something yourself.
Hope the aobve helps though.