Changing the html and order of system fields(pass/email/locale/etc) of user edit form
The reason the template method was not working on my site was the result of a caching issue.

To use a template file for the user profile form you can put this(or find the existing implementations of the hooks) in your template.php:

function yourtheme_form_user_profile_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  $form['#theme'] = 'user_profile_form';
}

function yourtheme_theme($existing, $type, $theme, $path){
  return array(
    'user_profile_form' =&gt; array(
      'render element' =&gt; 'form',
      'template' =&gt; 'templates/form--user_profile',
    ),
  );
}


Template file name, in this example, becomes form--user_profile.tpl.php