What a lot of people do is set up an 'incoming payments' account, an 'outgoing payments' account, and a 'storage' account. Have your bank block all external withdrawals from the incoming account, block all external deposits to the outgoing account, and automatically move money once-a-day from the incoming account to storage and from storage to outgoing(keep say $10,000 in there at all times). Never write checks against the storage account, or give the number out in any way.
On one hand, ACH is technically insecure. On the other hand, if a scammer can get away with the money a terrorist could get funded with the money, so money laundering and anti-terrorism laws have the side effect of making it hard for people to get away with it. And then you just throw the scammer in jail.
The article mentions handing a check to your landlord. Personally, as a landlord I set up an incoming rent checking account, hand out the checking account information to tenants, and let the tenant deposit the money electronically or by driving to the bank. I've asked my bank to reject withdrawals but accept deposits from that account, and use a debit card to pay for maintenance and utilities. I'm considering using SaaS software to collect this, mainly to ease accounting; I'm not worried about security here.