Add element to the beginning of form, via hook_form_alter()
I was facing the same problem but found the answer thanks to this post: http://drupal.org/node/235354

Problem was that the field I was adding to my web form was not in a group when all the already existing fields were part of the group 'submitted' maybe because this is a webform. So setting the weight to -1000 didn't change anything.

function webform_boncommande_form_webform_client_form_6721_alter(&amp;$form, $form_state, $form_id)  {

    $form['my_new_field_name'] = array (
      '#type' =&gt; 'checkbox',
      '#title' =&gt; t ('My new field is after the others'),
      '#weight' =&gt; -1000,
    );

}


To correctly make it work I just needed to create my new field inside the group 'submitted' like that :

$form['submitted']['my_new_field_name'] = array (...