How to display default value of disabled form elements after failed validation?
The function that builds the form array isn't expecting any params unless you set a param in your hook_menu for instance. Instead you could try to grab the $form variable in the validation handler by reference and setting the value. 

function foo_form() {
  return array(
    'foo' =&gt; array(
      '#type' =&gt; 'textfield',
      '#default_value' =&gt; 'foo',
      '#disabled' =&gt; true,
    ),
    'submit' =&gt; array(
      '#type' =&gt; 'submit',
      '#value' =&gt; 'Submit',
    )
  );
}

function foo_form_validate(&amp;$form, &amp;$form_state) {
  $form['foo']['#value'] = 'bar';
  form_set_error('submit', 'You cannot submit this form');
}


This is untested as I have no running Drupal 6 instance at the moment. But I was able to do so using Drupal 7.

Another approach would be to use #value instead of #default_value since you already got your custom validation handler to put some extra logic in (get rid of the form_state value).