The only reason Snowden is in Russia is because the U.S. government revoked his passport while he was in Moscow. So if you want someone to blame for that, look no further than the State Department.
They revoked his passport the day before he left Hong Kong [1]. He traveled to Russia on what turned out to be an invalid travel document issued by the Ecuadorian embassy in London [2] (same one that Julian Assange is holed up in).
Is there a reason that a country cannot just let someone in if they want, even without a valid passport? What exactly is preventing his travel if everybody is OK with it except for the USA?
EDIT: Added citations
[1] http://bigstory.ap.org/article/ap-source-nsa-leaker-snowdens...
[2] http://www.theguardian.com/world/2013/jul/02/ecuador-rafael-...