What i do is create a page normally in the dashboard, call it something like ‘login’, then use filters to replace the wordpress login url:
/**
* change http://www.google.ie to the url to your custom page, or anything you like
* @return string
*/
function my_login_url(){
return "http://www.google.ie";
}
add_filter('login_url', 'my_login_url');
make sure you include it somewhere near the top of your functions file for themes or the index.php plugin_name.php file for plugins.
then anywhere in the wordpress blog wp_login_url() is called, using the above example, it will give a link to: ‘http://www.google.ie’
Just came across this for renaming wp-admin:
http://wordpress.org/support/topic/anyone-tried-wp-reloaded