More than a year into President Obama's Administration — and three months after the Nigerian underwear bomber failed in his attempt to blow a U.S. airliner out of the sky over Detroit — the nation still doesn't have a top cop at the Transportation Security Administration (TSA). Why is the Administration having such a tough time filling this vital slot?
Robert Harding, the most recent nominee, withdrew from consideration last Friday after concerns were raised about government contracts he had received following his retirement from the Army. In withdrawing his nomination, Harding said the "distractions caused by my work as a defense contractor would not be good for this Administration, nor for the Department of Homeland Security." His withdrawal followed the similar fate two months earlier of former FBI agent Erroll Southers, after revelations that he had tapped into a federal database seeking information on his estranged wife's boyfriend. Southers had initially told Senators he asked a co-worker's husband in the San Diego police department to run a background check, but later admitted that he himself had conducted two database searches into the man's background.
(See pictures of the so-called underwear bomber.)
Political considerations may well have played a role in the derailing of both nominations. When Southers withdrew, the White House issued a statement quoting him saying that his desire to serve "has been obstructed by political ideology." To be sure, the poisonous atmosphere on Capitol Hill has made it necessary for any candidate to be bulletproof in order to withstand partisan scrutiny. But it's clear that, despite the Obama Administration's reputation for scrubbing its candidates before nominating them, there appears to have been poor vetting in both these cases. "In this politically toxic environment, it only takes one thing to derail a nomination," says Richard Cooper, a former Department of Homeland Security official. "But there were a lot of outstanding questions about Harding's contracts."
Harding, a two-star Army general, retired in 2001 and two years later set up a company with his wife as his partner. Then, in 2008, their company landed a nearly $100 million contract from the Army that involved identifying people via retinal scans and other unique biometrics. Harding's company was the only bidder, according to the Washington Post. The company collected about $200 million in federal contracts before Harding sold it last year.
Harding landed the contract after certifying he was a "service disabled veteran" because he suffered from sleep apnea, which would have given him an edge over other prospective bidders. Cooper notes skeptically that he too suffers from sleep apnea. "But it has never been what I would call disabling," he wrote on his blog Monday. "If anything, I find myself shaking my head in complete disbelief that of all the truly serious injuries that halt the military careers of our service members, this breathing disorder would be excuse enough to get a multimillion-dollar contract."
A second troublesome contract called on Harding's firm to provide 40 interrogators to work in Iraq for his old office — the Defense Intelligence Agency — where he had served as director of operations from 1996 to 2000. While the contract could have been worth $50 million, the Army ended it after spending only $6 million because of the relatively few Iraqis the U.S. military wanted to question, Harding told a Senate committee last week. But some $2.4 million of that ended up being questioned by government auditors. That included "severance payments" averaging $20,000 each that Harding had paid to each of the 40 interrogators after the government canceled the contract — payments Harding could not legally make because they were not provided for in the scope of the agreement with the government.
The Obama Administration now has to start over, for a third time, and there is concern it will be months before another TSA nominee can be found and vetted. The vacancy could be both a security problem for the nation and a political problem for the Obama Administration. Brian Jenkins, a terrorism expert with the Rand Corp, says a TSA without a confirmed leader hurts in two ways: it's bad for front-line morale, and it means there will be no bold policy proposals coming from the agency. "TSA can continue to tread water while it awaits a leader," says Jenkins. "But the threat is dynamic, and treading water isn't good enough."
The failure to get someone running TSA is only a minor irritant so long as no major terrorist attack happens on an airplane, ship or train while the spot is vacant. But if there's no one in charge of preventing it when something does happen, it's also a political disaster that could mortally wound a President's hopes for a second term.


Read more: http://www.time.com/time/nation/article/0,8599,1976408,00.html?xid=rss-topstories#ixzz0jkPtJI1W
