This is basically just a salary dump for Texas, as they're also getting the ~$8M difference from the Cubs. Nevin was unhappy, not hitting well, and had pretty much lost his job to the youngster Botts. He needed a new change of scenery, and the Cubs certainly need some thump in their Leeless lineup.
We have to assume Hairston will play OF, pinch run on occasion and be a late inning defensive replacement (in the OF). He certainly wont play 2B, as the Rangers have an emerging star (Kinsler), an outstanding backup (DeRosa), and a decent backup (Jimenez) at that position already.
This trade makes a lot of sense for both teams, although as somebody said already, they might have been able to nab Williamson instead. His numbers aren't horrid, but clearly the Cubs don't think much of him because he doesn't ever pitch in close games. You would think that he would have more upside than Hairston for the Rangers. Maybe it just wasn't possible for salary reasons, or maybe the Cubs didn't want to part with him. Obviously, they could not have gotten Eyre.