How does the NFL decide which teams play in London every season? Do any teams actually volunteer to play in London, considering the jet lag and also the fact that you might have to give up a home game? Does the NFL provide any sort of compensation to the teams that play in London?
Yes, teams agree to play in the games, presumably for a significant portion of the proceeds (though that, as with most things in the NFL, isn't made public). The reasons vary; for example, teams with small home stadiums and/or difficulty selling out seats will likely make a profit, as Wembley Stadium is reasonably large and typically sells over 80,000 seats per game, buying relatively expensive tickets ($150-$200 depending on the exchange rate, which is on par for a large-market team and more than smaller market teams will typically get). That's why teams like Jacksonville and Tampa Bay agree to do this, as they have relatively light attendance and can't charge as much for tickets. Presumably you also have higher jersey sales around the game in the UK; a lot of folks I know in the UK became Bucs fans after the first few games there. See the wikipedia page for more information and links to other sources.
As far as the downsides, the jet lag isn't all that bad; 6 hours from the east coast to London versus 3 hours to Seattle, and the other team has it just as bad or worse. You also get a slightly favorable schedule around that game (no Sunday-Thursday or Monday-Sunday, and they often coincide with bye weeks afterwards).