Is it possible to create a smart contract which triggerring will be delayed until a special transaction issued by a specific user appears in the chain? If it is possible can data from this transaction be used as an input for the contract?
Yes. Smart Contracts can make
calls to other contracts to check if a prerequisite of the requested transaction is satisfied.
Refer to interactions between contracts. https://dappsforbeginners.wordpress.com/tutorials/interactions-between-contracts/
Update: I understand, the question is seeking more input that I previously provided. I'll add more clarification. Assuming you have control on only one contract (A) that needs to watch for a trigger transaction on a contract (B) which is beyond your control. If you have control of both contracts, you simply trigger a transaction on (A) through your transaction to (B) as mentioned above.
Contracts cannot trigger by themselves, and need an EOA (Externally Owner Account) to start a transaction. In such a case you will need have an Oracle - an external service that will look for the trigger transaction on (B) and push a transaction to (A) on event. (A) can still do a check on state of (B) to make sure that the Oracle isn't gone rouge.