No, if there was then good music would be easy to create. Part of some composers methodology is to do the unexpected. But if there is unexpected things then there are expected things. But there are many possibilities.
In the common practice period(CPP)(think of Bach, Beethoven, Mozart, etc...) there were very common progressions and a "theory" for some things. There is also a psychological factor involved. If I play something in Cmajor then abruptly cadence on a C#/Db chord you will hear that as unexpected. You may or may not like it but almost surely you will think it stands way out. Beethoven actually does something like this in I think the 7th or 9th symphony(can't recall) but it actually sets up a modulation down the line so what you think is unexpected you actually later on feel as if it was meant to be. (this is because he sets it up and makes you feel like it should happen because he was a genius composer)
Haydn did something similar with dynamics,
http://en.wikipedia.org/wiki/Symphony_No._94_%28Haydn%29
The thing is, it doesn't matter too much. USE YOUR EARS! In C major, if it jumps to a Dbmaj chord even the best musician will miss it if they are not familiar with the song or possibly the style(there are some idioms that exist that they might use to know that a specific chord is coming up).
But, in C major, you only have a 50% chance of getting it wrong if you just randomly play chords. Am = C, Em = G, and Dm = F. So even if you play a C chord over an Am chord it will "work" because it turns that chord into an Am7. It might not work as well as an Am chord but it won't sound terrible.
So just by probability you got a good shot of getting it right if the song is not too complicated.
In any case you simply must learn the progressions either from the sheet music/tab or by ear. There are no tricks for this because there are no rules to compose. There are some common features such as in the CPP you try to resolve 7ths of a chord down. So G7 will resolve to Am or C because the 7th must resolve to E and the leading tone B must resolve to C.
So G7 sets up the tendencies to resolve to Am or C. All notes in a scale have tendencies to move because of the dissonances they create and because of we want them to resolve to consonances. You can use these tendencies to help you a little but for the most part your probably just as likely to get it wrong as right.
In any case in CPP music there is a common statistical pattern where chord's tend to move in 4ths. G moves to C, C to F, Dm to G, Am to D, etc... and Dm and F seem to be interchangeable.
Also, say you know the song but forget a chord and play a wrong one... if you've gotten most of the song right and you know how to fake it chances are most people won't know.
In any case learn the progressions of the songs and you'll be much better off. Eventually when you learn enough songs of that style you'll be able to predict better but if you try to rely on predicting and you get it wrong big time people will notice that much more(and it will happen cause you can't be right 100% of the time or probably even upwards of 95% using that method).
e.g., if you have a 95% chance of predicting the chord progression of a song you have never heard then that means every 1 out of 20 chords you'll screw up. If a song contains 200 chord changes that means you've screwed up 10 chords in the song which is 10 times people will potentially hear that you've screwed up.
But if you know the song well chances are you won't screw up any or if you do it will be minor.
If you can find the right chord when you play the wrong when, then that is good... that helps a lot when you forgot part of the progression. Just learn the songs!! There's no simple way around it!