Yes, there are a couple more approaches you can use...
1) create a package that first checks to see if the software is installed. If it is found to be installed, exit the package. otherwise, install the package. This rely's on code to be placed in the package itself to check for installation before trying to install. Advertise this package to the collection on a schedule every 6 hours (example). In this way, the software will attempt to install every 6 hours..but will only actually install if the software is missing on the client. This method does not require software inventory to update the collection.
2) I think you can use Desired Configuration management to check for this software installation.
http://www.systemcentercentral.com/Details/tabid/147/IndexID/19568/Default.aspxThough, I am not yet familiar enough with DCM in SCCM to know exactly how to perform an action (like install software) if DCM determines that the software is not present. I suspect, however, it might be possible to perform an action if DCM find the computer not compliant to a policy - a policy like "adobe software missing"