Yes, you could do this by requiring an attestation in the transaction to come from a certain address, and enforcing this rule in a transaction filter. There's an example here:
https://github.com/MultiChain/smart-filter-examples/blob/master/transaction-filters/approve-asset-transfer.js
Another simpler method could be to use a combination of signmessage (to create the approval, which is then embedded in some metadata together with the message that was approved) and verifymessage (to check the approval in the transaction filter). The approved message could include the identity of the address the funds are being sent to, the amount, and some kind of time limit (that is checked against getlastblockinfo).