The only way a script can know how long you have been on a page is if it can gather the landing time on the next page of your site.
All visitors who visit only one page on your site, even if they spent an hour reading it, will show as an immediate bounce.
Where you have relevant landing pages there is often no need for a visitor to look further into your site if all they are after is info. If you want them to take an action like buy or contact you, then a high bounce can be depressing - shows bad
SEO if too many have to leave to find the info they really need.
The only way to solve the problem is by tracking each visitor's path through your site to see what search terms are bouncing and which are resulting in more pages being visited and a conversion being made. Improve the
SEO for the conversion phrases and decrease for the bounces as they are just costing bandwidth.
Unfortunately the above can be very difficult if all you are doing is forwarding people through an affiliate link - create a redirect page between the link on your landing page and the affiliate redirect page to catch this traffic.