Yes you can! Use WordPress Conditional Tags http://codex.wordpress.org/Conditional_Tags
Try using a negative ! is_page http://codex.wordpress.org/Function_Reference/is_page
Something like:
if ( !is_page() ){
// Will not run on pages
}
Also, for the protected password posts.. Maybe you can try to use this snippet in your functions.php instead and work from there (using Conditional Tags if you need to):
function za_button_print($content)
{
return $content.za_show_button('Download');
}
add_filter('the_content', 'za_button_print');
Let me know if this helps!
Rick