When I was an assistant controller for a hotel, I specifically signed up with Citibank so that people in our hotel could cash their paychecks at Citibank without an account. Citibank then started telling them they would not do this. So I pulled the payroll account and opened it at Bank of America, which would do this. BOA requires a photo ID, a employee ID and they make you do a thumbprint if you don't have an account.
You can attach at bank account so if you have outstanding debts you're account is worthless once it becomes attached. Also if you have bad credit banks will not open an account or if they do open one for you they'll close it asap once they see your credit is bad.
Where I live currancy exchanges charge flat fees till between $300 - $700 (depending on place) then it is a percentage of the check usually 2.9%
The last place I controlled payroll I also set it up so people could have their payroll deposited into a debit card with a Visa Logo. This wasn't really good, because you get charged a fee with each purchase, but some people used it.
I've applied for some jobs that require you to sign up for direct deposit period. They have no checks. I mean you don't HAVE to sign up but they won't give you the job otherwise.
You could also sign up for direct deposit and have the money go into an account in someone else's name if you have bad credit, but then they control the money. My take would be to have that person with good credit open a zero balance free account and then you direct deposit your paycheck into the account. Then you use the ATM to access your money so the account couldn't be attached by creditors