WordPress offers the wp_list_categories() template tag to display categories, but only allows the order to be set to category ID, name, slug, or count. Fortunately, these two plugins provide a method to manually designate the order of categories.
Category Order, by Wessley Roche, allows ordering of categories with an easy to use, drag-and-drop process. The ordering process is accessed under a Posts->Category Order menu screen. The top level categories display, and each category can be dragged, up or down, and dropped to the desired location on the list. A button, "Click the Order Categories," saves the order.
Categories with children (descendants or subcategories) have a 'More >' link next to the parent category name, and when clicked, displays the children categories of that parent category. Each of the children can be ordered by dragging the category, up or down the list. If a child category, in turn has children, then a 'More >' link does a drill-down to that category for ordering.
After the order of categories is saved, it is just a matter of making sure the wp_list_categories() template tag is used in a theme template file. The use of the code,
<?php wp_list_categories('show_count=1&title_li=<h2>Categories</h2>'); ?>, which already exists in the WordPress Default theme's sidebar.php file, is all that is necessary to display the categories. The native Categories Widget will use the order set by this plugin.
Note that this plugin saves the order values in two records ('category_children' and 'wpguy_category_order') in the 'wp_options' table. There is no uninstall option to remove those records from the 'wp_options' table. As for author support of this plugin, which is accessed via the order-categories tag, there aren't enough questions in the Forums to measure the author's response to problems. Donate to the plugin author at: http://wpguy.com/plugins/category-order
My Category Order
My Category Order, by Andrew Charlton (froman118), also provides an easy to use, drag-and-drop interface with the My Category Order choice, under the Posts menu. The plugin displays two ordering sections, one for main (top) level categories. and one for subcategories (descendants or children). To order the main level categories, under the "Order Categories" section, drag-and-drop those categories, up or down the list, then click on the "Click to Order Categories" button to save the settings.
To order subcategories, select the parent category in the Subcategories pull down and click the "Order Subcategories" button to drill-down to the next descendant level. At that point, drag-and-drop those subcategories, up or down the list, then click on the "Click to Order Categories" button to save the settings. If there are 'grandchildren', select that subcategory in the pull down, click the "Order Subcategories" button to drill-down to the next descendant level, and perform the drag-and-drop, and save process.
The final step in using this plugin is to set the 'orderby=order' argument with the wp_list_categories() template tag. That template tag is typically in a theme's sidebar.php template file. An example of the code to use is
<?php wp_list_categories('orderby=order&show_count=1&title_li=<h2>Categories</h2>'); ?>.
Interestingly, this plugin saves the category order values in the 'term_order' column of the 'wp_terms' table. There is no plugin uninstall option that might restore the values of the 'term_order' column to zero. The plugin also includes a widget with extensive configuration options. French FR, Dutch NL, Polish PL, and Russian RU, translation .mo files are provided. The plugin author seems to do good job answering questions in the forums (see the tag my-category-order). Donate to the plugin author at: http://geekyweekly.com/mycategoryorder
Both plugins perform as promised. The Category Order plugin is the simplest to use, as it may require no changes to a theme template file, but the My Category Order offers a highly configurable widget, and several translations. You can't go wrong using either plugin.