$pagenow appears to be only intended for standard WordPress pages and not individual plugin pages. Example: Standard WordPress pages plugins.php, admin.php, wp-login.php, etc.
What I ended up going with for BPS is the WordPress function: wp_script_is() that determines if a script has been registered, queued, printed, or is waiting to be printed. All BPS js scripts are contained and only load on BPS plugin pages so by using a check that BPS js scripts = queue then this means that a user is on a BPS plugin page and not some other WordPress admin page or another plugins page.
http://codex.wordpress.org/Function_Reference/wp_script_is
if ( wp_script_is( 'bps-js', $list = 'queue' ) ) {
// do X