One of the more counter-intuitive pieces of advice I've seen for GMing that I find myself agreeing with is that it's ok for your players to be in on the plans you have for them as a GM. This is especially true in games where you are trying to have bigger story interaction with who the PC is, or when a Player is looking for specific things from their character. I say it's counter-intuitive because it feels like you're ruining the surprise, and you're ruining the 'moment' of the reveal. But honestly, you're not. If anything, you're making sure that those moments don't get wasted.
Co-operative Story Telling
If gaming is a story telling medium with your group, than it is a cooperative one. It is not just the GM telling a story - that's kinda boring unless you're specifically looking for story time. It is the GMs and the Players telling a story. To be specific, it is the GM and the Players telling multiple stories.
RPGs are unique as a story telling medium in that it is only in RPGs that the creator and intended audience for the stories being told are the same people. You the GM, and the 4-6 players arranged around the table, are the audience for these stories you will tell at your table. But you're also the creator.
The Player As A Story Teller
One of my friends asked me for advice recently. One of his players wants to be more involved in the story of the game, but isn't sure how to go about doing that. The GM is also unsure what to do that won't come across as ham handed or forced. The player doesn't have a particularly hook filled backstory, and isn't really able to provide a lot of details for the character. The character is fairly flat in game, is quick to anger, and rushes into combat. The player has a history of playing RPGs, but more in a dungeon crawl format.
None of this is the players fault, nor is it the GMs. The player is trying to reach into the world the GM has created, but he doesn't know how to do it. The GM is trying to pull the player in, but the handholds he's used to gripping onto don't seem to be present here. They've discussed the issue a little, but both are kind of stymied.
My advice for my friend started like this: ask the player what he means when he says he wants more story interaction. Ask him what that looks like to him. Be prepared for him not to know - that's why he's talking to you - and have some ideas you can suggest. Then, if he grips onto one, make it happen and warn him before it comes into the game so he knows to look for it.
The player in this story doesn't know how to be a story teller with their PC. And since they don't know how to do that, they've missed the threads the GM has tried to use before. However, by warning the Player, he now knows to look for it. And you can be a bit heavy handed on it. Both the GM and the Player want this involvement to happen, so why not work together to make it happen?
And this works even with players who know to tell stories. Working together for the setup can be an amazing thing. I've flat out told a GM I'm in that I want my character to have this 'frenemy'.' She thinks he's great, but he's really not. He's going to use her to his own ends, help when it's convenient - so she owes him more help - and he's ultimately going to get her into bad situations. The GM told me 'cool, make the person and send me a quick write up.'
Will it play out exactly how I envisioned? Probably not, but the GM knows what I - the player - am looking for out of this NPC, and I know what I want, and so we can play into that.
Foreknowledge Ruins the Moment
This is where the counter-intuitive part comes in. You have an NPC that is going to betray the PC. The Player knows. The moment is now ruined, right? Wrong!
Remember, both you and the player want this moment to be there and to succeed. By having it there, the player - and you - can be prepared. You can be ready with the emotional response that is going to happen. You can be ready with lines of dialogue. You can make the scene incredible and memorable.
Maybe it won't surprise the player in question at the table. But you know what you gain in return for that? A better scene for all the other players at the table. And a more memorable moment for everyone.
Three years from now people aren't going to remember "and then the GM totally got one over us and we never saw it coming." But they will remember their characters being betrayed. And they'll remember how much they looked forward to it happening, and how awesome it was when it happened.
Anticipation Makes For Good Dining
And then there is the fact that anticipation means you've now got the player helping you hooked. Why? Because they're in on the deal, you can use it. You can drop foreshadowing and it will have more meaning because they know what is coming. You can hint that that thing is going to happen, and then you can put it off to later and leave the player wondering just when the sword will drop.
Remember, you worked out with the player that NPC B is going to betray them but that doesn't mean they know when it's going to happen.
You and the player worked out that they're going to find their father's killer and duel him for vengeance, but that doesn't mean the fateful duel is going to be this time.
In a lot of ways having the player in on the deal gives you even more tension control. You know what is terrifying? Seeing you're down to half hit points, out of resources, and recognizing that the GM is hinting at revealing the person you and him worked out has been hunting you for revenge these last 3 years. Knowing you likely have a big fight in front of you, and you're just not ready for it. It can really turn the screws. But you don't get that if the player is in the dark.
Give it a shot. Trust your players. Like you, they want to tell an amazing story. Just don't expect them to know what you're asking for right off the bat. I mean, who tells their players what they're going to do to them ahead of time?