How to support custom templates on a custom post type?

You should be able to create a single-your-post-type-name.php file and have it work. I currently have it working fine on 3 or 4 sites so if it’s not working for you you’re doing something wrong.

Based on your code sample single-artwork.php should work as a single page post template. You could also redirect on single.php with:

<?php
if( get_post_type() == 'artwork' ) {
include_once ( TEMPLATEPATH.'/path/to/template.php' );
} else {
include_once( TEMPLATEPATH.'/normal/template.php' );
}
?>

I’d prefer to see the single-posttype.php route since WordPress is doing the routing at a deeper level and it’s always nicer to just use WordPress built in stuff.