My solution to this problem involves the use of a simple plugin and a modification the the .htaccess file. No core code needs to be touched:
The Plugin
-------------
<?php
/*
Plugin Name: AdminLinkRemoval
Plugin URI: NULL
Description: Removes specified links from the admin panel
Version: 1.0
Author: Michael Fields
Author URI: http://www.mfields.org/
*/
add_action('admin_menu','mf_delete_links');
function mf_delete_links(){
global $menu;
unset($menu[0]); // Dashboard
}
?>
The .htaccess
------------------
We'll assume that your domain is "test.com"
and you installed wordpress in a directory called "blog"
and that the .htaccess file is stored in the "blog" directory
RewriteEngine On
RedirectMatch permanent ^/blog/wp-admin/index.php$ http://test.com/blog/wp-admin/post.php
Note: There should only be two lines in the htaccess, the text might be wrapped.