How do I get the job?
There are two types of businesses you can apply to: those that make their money primarily through coding, and those that have a tech department to augment their primary (usually sales) business.
Their primary resource is programmers. They will have a lot of experience screening and interviewing coders. They get a ton of applicants, and have to weed out all the duds (see Kaz's comment). Because they get so many applicants, it is much better to reject a possibly good candidate than to accept a possibly bad candidate - or even waste time bringing them in for an interview. They will have a fairly strict battery to screen out most people before they can even get to the point where they can shine.
When you do finally get a job, you come in at the bottom level of a rigid, established hierarchy. There will be a process where strategic decisions filter down through levels of management and finally end up as assignments handed down from on-high. You get to work your way up through the ranks of Dev I, II, etc.
Their primary resource is people that are not programmers (usually sales). Everything I said above applies, but it applies to the sales staff. The tech department will be small compared to the rest of the business. Because programmers aren't the core workforce, the business won't be as experienced at interviewing or managing them, so their tests will tend to be less thorough (I got my first position after a 20 minute interview with no written code - they got lucky it was me ;)
When you get a job, you will most likely be in a position of autonomy. Instead of fitting in as a cog in the bottom level of the machine, you will be one of only a few in a department that likely communicates directly with upper-level executives. You will inherently have more responsibilities and decisions, simply because there isn't a bureaucracy in-place to make those decisions for you. You will get to put really good looking design and leadership experience on your resume.
If these jobs are so awesome, why isn't everyone applying?
Even though the absolute number of positions available is large, they are spread out over many companies. A medium size development studio might hire for a position every month. A regular business might hire for a position once a year.
Intuitively, it seems like surveying 10 development studios and finding 5 open positions is much more efficient than surveying 20 other businesses and finding 1 open position. It makes sense to look at fewer businesses that will have more positions, but when everyone is doing that, the competition for those positions is much tougher.
Money. Just like they don't know how to hire or manage programmers as well as a programmer-specific business, they also don't know their value. You pay for autonomy and rapid advancement by taking a smaller salary than you would at a development studio. As a young person with no family trying to break in, this should be an easy compromise.
My own experience
This advice comes from my own experience, first from breaking in by getting such a position, and then from trying to hire people.
I started working at a medium-sized company (about 100 people) with a tech department that was 2 people when I started. As I've said above, the "interview" was about 20 minutes of me talking excitedly about the coding I've done. Apparently, I still beat out 10 or so other candidates.
A little more than a year after starting my first real job, I was already in a lead position and responsible for hiring new people as the department expanded. This is where the money thing comes in. I started at a ridiculously low hourly rate (for a knowledge worker; as someone used to working in the service industry to pay for college it was still more than double what I was used to making).
After we started hiring and people who were to be hired below me were asking for a salary an order of magnitude greater than mine, my salary was raised several times to bring it closer to what I would be making at a development studio - they weren't trying to set a low salary as an attempt to be cheap, but rather because they didn't know what to expect. Once people started asking for much more, they wised up and started throwing money at me.
After we set a non-ridiculous (but still on the low end) salary, we were able to fill the positions after a few months. The lower visibility combined with lower salary of our positions meant that we didn't get a whole ton of applicants. Rather than being able to pick out the single glowing gem, we had to go with anyone that filled the most basic of requirements. If you happen to be a gem that doesn't do perfectly on tests (because doing just "very well" isn't enough when there are so many applicants), this is good news.
The total numbers looked something like this:
Position offered: 3
So of the 4 people who made it past the resume phase, only one was disqualified, because he was completely unable to write any code. The other 3 passed by demonstrating just the basic level of proficiency - if you could write a simple function or two, and create a CRUD site, we would have made you an offer. Each of those offers was about 2 weeks apart, and the first 2 people rejected them. They wanted more money, but were at best average programmers. Of the people that didn't get past the resume, the reason was almost always because they had 10-20 years of experience with "senior" level titles, so interviewing them for a low-paying entry level position wasn't worth it.