Does this look right for adding a terms of use checkbox to register form?
Yes, but I would change

$form['#validate'][] ='customfunctions_form_validate_custom';


to

$form['#validate'][] ='MYMODULE_user_registration_form_validate';


and 

function MYMODULE_form_validate_custom($form, &amp;$form_state) {


to 

function MYMODULE_user_registration_form_validate($form, &amp;$form_state) {


Nothing wrong with your code, but this just keep with the Drupal naming convention ie search_form_validate,  node_form_validate, etc

Also

'#title' =&gt; t('Terms of Use&lt;span class="form-required" title="' . t('This field is required') . '"&gt;*&lt;/span&gt;'),


is bad

'#title' =&gt; t('Terms of Use') . "&lt;span class='form-required' title='" . t('This field is required') . "'&gt;*&lt;/span&gt;",