Was studying the flow of the popular game "Draw Something", and like to call it "Async/Turn based" way of playing(unless any one got a better idea about the name :-P ).
Here's how it works:
1) Player 1 first choose or find a friend/opponent to play with, either by email/facebook/random
2) Player 1 do something (in Draw Something, it's create a drawing) and send the data to player 2
3) Player 2 received the request (prompt to install app if not already installed), do something (in Draw Something, it's guess what player 1 was drawing, if correct, both get coins), then player 2 repeat the same step, do something and send it back to player 1
4) keep repeating 2) and 3), both enjoy the fun and earninging more coins
As either player could be off-line, the app either send notification or email or whatever or just wait for the player to run the app again. And as it's not syhchronised, a player can play with as many other friends/opponents as required at the same time. Just fullfilling each request one at a time.
The interesting part is the process of the app showing the different steps about what the other player is drawing, and how the other player guess what you have drawn. Plus the expectation of getting feedbacks as it's a kind of fun interaction with other players.
Hope you find this kind of game flow interesting and can get inspired to come up with new ideas. It's definitely a lot more complicate than the normal games as you need some sort of back-end Web Services setup. Wonder if any existing framework can do this, OpenFeint? Nextpeer? Any idea?