Will social engineering ever wane? Or will ignorant and uninformed people always exist in abundance? ...
You don't have to be ignorant and uninformed to fall for a social engineering attack. You just have to let down your guard for half a second. People who say that social engineering only works against the ignorant/uninformed are either stupid, or they have little or no experience defending against social engineering.
Direct attacks are easy to defend against. Obviously, you should never give your password away. Ditto for your credit card numbers, PINs, SSN, and all those kinds of things. Direct attacks are flashy, and they're the ones the folks like to use as examples of OMG YUO AR3 H4X0R3D!!! They're not the only attacks you need to be worried about though.
Indirect attacks are much more difficult to defend against. What's the harm in confirming a co-worker's job title? Telling someone how many domains your company has registered (and maybe list a few of them off?) Listing a fax number for the Corporate Communications department? Any of those items, by itself, doesn't do much for an attacker. However, an attacker with these little pieces of information can use them as leverage to get more information, as well as to build a profile of the target. So which pieces of information do you give out, and which ones do you not? The simple answer is to not give out anything, but this is not a viable option for most. (Should the office assistant really refuse to tell you where Bob's cube is? Should the hostmaster refuse to confirm whether or not he is a valid point of contact for a given IP address?)
Part of my job function is to serve as an external point of contact for things related to our IP allocations and domain registrations. I get calls from people all the time:
"Hi, this is Valerie with Verisign's Managed Services Group..."
"Hey, Tom from $consultant_group_whose_name_i_dont_recall here. I'm calling to confirm that $coworker is still employed there?"
"Hello, my name is Stephanie, and I represent Blue Cat Networks. May I speak with an email administrator?"
Hi, I'm Sam with $regulatory_agency, and I'm trying to track down somebody to report a case of network abuse to..."
"HELLO. THIS IS AN AUTOMATED MESSAGE FROM MBNA TO THE SMALL BUSINESS OWNER INFORMING YOU THAT YOU HAVE BEEN PREAPPROVED FOR A CREDIT LINE OF $8000."
Fucking telemarketers.
Anyway, my point is that most people are required to give out some information to some people all the time, and the rules for this information dispensation are typically fuzzy. Good social engineers will slip under your radar to make themselves appear to be valid targets for information, and in most environments, that's extremely hard to defend against. I don't know anybody who can defend 100% against information retrieval attacks, even if they are wary. I'm both wary and experienced, and I still fall for the occasional ploy. For example, I fell for caller number 2, above, confirming that $coworker was indeed an employee. (About an ohnosecond later, I realized what I'd just done, but by that point, it was a little late.)
You don't have to be stupid, you don't have to be uninformed. You just have to be human.