The specials sidebox is designed to not show on the product _info page ...

You can customize the code with your templates and overrides ...

I prefer, when working on sideboxes, to copy both parts of a sidebox to the templates and overrides so that things are managed in pairs ... but that is a personal opinion ...
/includes/modules/sideboxes/specials.php
/includes/templates/template_default/sideboxes/tpl_specials.php

Copy to your templates and overrides directories:
/includes/modules/sideboxes/your_template_dir/specials.php
/includes/templates/your_template_dir/sideboxes/tpl_specials.php

If you look at this section of code, you will see how the sidebox is disabled when there is a $_GET['products_id'] set:
Code:
// test if box should display
  $show_specials= false;

  if (isset($_GET['products_id'])) {
    $show_specials= false;
  } else {
    $show_specials= true;
  }

  if ($show_specials == true) {
Any time $show_specials is set to false you will not see the specials sidebox and when $show_specials is set to true then there will be a special sidebox ...

You can add any number of conditions to the sideboxes to use this method to control them ...