is_page_template() function first tests to see if the content is a Page (eg. About, Contact…):
1153 function is_page_template($template = '') {
1154 if (!is_page()) {
1155 return false;
1156 }
1157
1158 global $wp_query;
1159
1160 $page = $wp_query->get_queried_object();
1161 $custom_fields = get_post_custom_values('_wp_page_template',$page->ID);
1162 $page_template = $custom_fields[0];
1163
1164 // We have no argument passed so just see if a page_template has been specified
1165 if ( empty( $template ) ) {
1166 if (!empty( $page_template ) ) {
1167 return true;
1168 }
1169 } elseif ( $template == $page_template) {
1170 return true;
1171 }
1172
1173 return false;
1174 }
There should also be a is_single_template() because Post attachements are considered Posts too.
Therefore the following code in a Post with image attachements will never output because the condition is always false:
<?php if ( is_page_template('image.php') ) { ?>
<li><h2>Previous</h2><?php previous_image_link() ?></li>
<li><h2>Next</h2><?php next_image_link() ?></li>
<?php } ?>