For some the cause is poor choices. For others, it's lack of work, low wages, or both.
Currently, there are 12 million active job seekers in this country, but only 4 million jobs. That means that no matter how hard the country looks for work, 8 million will be left without jobs. It also means that it's not their fault, or even their choice that they can't find work. The work simply doesn't exist. So to blame them, call them lazy, or accuse them of being drug addicts, is too simplistic. You simply cannot blame someone for not having a job when there aren't enough jobs to go around.
And this just isn't a problem exclusive to the United States, either. Worldwide, there are less jobs than job seekers. Now whether that's due to bad economies, automation, or a combination of the two, the fact still does not change that we are and likely will continue to be in a worldwide job deficit.
How we get out of this I don't think anyone knows. But what we shouldn't do is to point the finger at the workers. For every 1 job, there are 3 people trying to get it. That's great for the 1 person who does finally get the job, but it's unfair to lay all the blame at the feet of the 2 job seekers who lost out.