You want to prevent deletes to the table A axcept if it is done from a trigger on table B.
Create a DELETE trigger for table A with this code only:
IF NOT( <condition> ) ROLLACK TRANSACTION
RETURN
The <condition> should check if delete is going from another trigger. Well, you would have t set a flag in your dataabse and read it here.
There is a config. function @@NESTLEVEL that checks nesting level of stored procedure calls. I am not sure how it works in case of triggers. Try it. Let me know.