In this regard I like what authorize.net has done by issuing an API login ID and transaction key which are completely separate from the merchant login details. They only allow you to use their API for doing transactions like CC auth/captures, etc. If someone steals the ID/key, all they can do is send you more CC auth's ... granted, they could be fraudulent and cause you trouble, but at least the info cannot be used to login and modify your account, etc.
Linkpoint does similarly: A user ID and a certificate key (file) are required to use the module. The user ID is tied to your account, but the payment module doesn't use your real merchant password. Thus, the login details cannot be stolen.
If you're using a payment module for a gateway that offers less separation between username and password details, you might consider exploring how to change that.
.
Zen Cart - putting the dream of business ownership within reach of anyone!
Donate to: DrByte directly or to the Zen Cart team as a whole
Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.