=== modified file 'includes/admin.inc'
--- includes/admin.inc	2009-04-08 18:04:47 +0000
+++ includes/admin.inc	2009-04-08 18:55:35 +0000
@@ -2744,6 +2744,13 @@
     '#default_value' => variable_get('views_exposed_filter_any_label', 'old_any'),
   );
 
+  $form['views_table_default_sort'] = array(
+    '#type' => 'select',
+    '#title' => t('Default Sort for Table Columns'),
+    '#options' => array('asc' => t('Ascending'), 'desc' => t('Descending')),
+    '#default_value' => variable_get('views_table_default_sort', 'asc'),
+  );
+
   return system_settings_form($form);
 }
 

=== modified file 'plugins/views_plugin_style_table.inc'
--- plugins/views_plugin_style_table.inc	2009-04-08 18:04:47 +0000
+++ plugins/views_plugin_style_table.inc	2009-04-08 18:55:35 +0000
@@ -19,7 +19,7 @@
     $options['info'] = array('default' => array());
     $options['override'] = array('default' => TRUE);
     $options['sticky'] = array('default' => FALSE);
-    $options['order'] = array('default' => 'asc');
+    $options['order'] = array('default' => variable_get('views_table_default_sort', 'asc'));
 
     return $options;
   }
@@ -28,18 +28,19 @@
    * Determine if we should provide sorting based upon $_GET inputs.
    */
   function build_sort() {
+    $initial_sort = variable_get('views_table_default_sort', 'asc');
     if (!isset($_GET['order'])) {
       // check for a 'default' clicksort. If there isn't one, exit gracefully.
       if (empty($this->options['default'])) {
         return TRUE;
       }
       $sort = $this->options['default'];
-      $this->order = !empty($this->options['order']) ? $this->options['order'] : 'asc';
+      $this->order = !empty($this->options['order']) ? $this->options['order'] : $initial_sort;
     }
     else {
       $sort = $_GET['order'];
       // Store the $order for later use.
-      $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : 'asc';
+      $this->order = !empty($_GET['sort']) ? strtolower($_GET['sort']) : $initial_sort;
     }
 
     // If a sort we don't know anything about gets through, exit gracefully.

=== modified file 'theme/theme.inc'
--- theme/theme.inc	2009-04-08 18:04:47 +0000
+++ theme/theme.inc	2009-04-08 18:55:35 +0000
@@ -312,8 +312,7 @@
         $vars['header'][$field] = $label;
       }
       else {
-        // @todo -- make this a setting
-        $initial = 'asc';
+        $initial = variable_get('views_table_default_sort', 'asc');
 
         if ($active == $field && $order == 'asc') {
           $initial = 'desc';

