Not all Christians face this dilemma. Calvinists avoid it by rejecting the traditional (libertarian) concept of free will, while so-called “open theists” reject the idea that God knows everything about the future. But for those in between these two extremes – which is the majority of believers – the problem remains.
One of the most common ways apologists have tried to get around the difficulty states that merely knowing what someone is going to do does not prevent them from doing it freely. For example, I may know that if you find a $100 bill on the sidewalk you will pick it up, but it doesn't follow from that that you don't do so freely. You could refrain from picking up the money; it's just that I know you wouldn't want to do so. Likewise, some claim, God's knowledge of what you are going to do tomorrow doesn't mean your decisions aren't free.
It may help to make this point clearer if we compare it with knowledge of what has already occurred. Let's say that yesterday you had pizza for dinner, and that God (of course) knows that. This doesn't mean that you didn't do so freely: you could have had something else. There were other possibilities as to what you might have had. However, the choice you actually made was to have pizza. Now contrast that with God's knowledge of what you are going to have for dinner tomorrow. Again, there are different possibilities as to what you might have. However, there is only one that you will actually choose, and God knows, in spite of there being other possibilities, which one it will in fact be.
This argument may appear perfectly sensible. After all, in many cases we can predict with pretty good accuracy what someone will do (especially if we know the person well) – and yet we don't think that someone isn't acting freely for that reason. So why should it be any different with God's knowledge?
But in fact it is different, and to understand why we merely need to remember one thing about God: namely, that he is supposedly infallible. That is, God cannot possibly make mistakes; by definition, he cannot be wrong. And that changes things.
As we have already seen, in order for you to be free in the sense being discussed here, it must be the case that you are free to choose from among different alternatives. Your choice of pizza yesterday was free only if it is true that you could have chosen something else instead. And this means that if tomorrow's decisions are to be free, there have to be different possibilities as to what you will do. Maybe it is the case that you will, as it turns out, have spaghetti for dinner, but nevertheless other alternatives must exist. You aren't free if having spaghetti is the only thing that it is even possible for you.
But now here's the problem: if God cannot be wrong, then it is impossible for there to be alternatives to what he knows you are going to have. In other words, it's not merely that God knows that you are in fact going to have spaghetti, while other possibilities remain. Rather, since it is impossible for God to be wrong, it is also impossible for you to have anything else. Because for there to be another possibility is for there to be the possibility of God making a mistake.
Another way of putting this is that, if you have free will, then you have the power to make God wrong – and that of course cannot be. God's foreknowledge – his perfect, infallible foreknowledge – is therefore incompatible with the kind of freedom that most Christians believe we have.
Addendum, 15 August 2015:
This post led to a rather lengthy and for the most part fruitless online exchange. As a way to try to prevent the kind of misunderstanding that led to that argument, I decided to further explain the reasons supporting my view.
The foreknowledge argument claims that the future is determined because God already knows everything that is going to happen. So for instance, if God already knows that tomorrow you are going to wear a blue shirt, then it isn't possible for you to do anything else.
Now, there are two rather different versions of this argument. According to the first, the problem here is simply a problem about there being knowledge: God knows what you are going to do, so how can you be free to choose what to do? On this version of the argument, God is the focus, but only because he is said to know everything about the future (which is more than one can say about humans, including even fortune tellers). However, the problem would be just as acute if anyone else knew what you were going to do. And even though human beings don't know everything about the future, we do know some things – including some things about what other people are going to do.
A second version of the argument makes an important distinction between knowing something and having infallible knowledge of something. The importance of this distinction will be explained below. For now, however, note that if one makes this distinction, then God's role becomes far more central, since only he is said to have infallible knowledge of anything. (Of course, if someone else had such infallibility, the same problem would arise.)
I claim (as do many philosophers) that it is the supposed infallibility of God – and not mere knowledge – that creates a problem.
To understand why mere knowledge isn't the problem, consider what that version of the argument is really saying, beginning with what it means to know something. If you know x, then (a) you believe x, and (b) x is true. (In addition, you must have good grounds for believing x, but for our purposes, that can be ignored.) Now, your believing x (or even having good reasons for doing so) isn't the problem; where some see a problem is in the fact that x is true. For if x describes some future event and yet is already true, then how can the event be avoided? Thus, if I know you are going to wear a blue shirt, then how can you still be free to decide whether or not to do so?
This argument from mere knowledge, then, is really the same as the argument from fatalism (a.k.a. logical determinism). Fatalism begins with the observation that for anything that is going to happen, it is true that it is going to happen. For example, if as it turns out you are going to wear a blue shirt tomorrow, then it is true (and one can express that truth right now) that you are going to wear a blue shirt tomorrow. But if it is already true now that tomorrow you are going to wear such a shirt, then how can it be possible for you to do anything else?
Some people try to avoid fatalism by claiming that statements about future contingent things are neither true nor false, but that seems to be a mistake. After all, it is necessarily true that something is the case at each given time and place. It follows that even if the future is not determined – so that there is more than one possibility as to what occurs at each given place and time – some specific thing e will be the case at a given time and place t. And if so, then a statement beforehand that e will be the case at t is, as it turns out, a true statement.
However, to then conclude that, since the statement is true, the event is determined to happen is another mistake – for, as we have just seen, the statement is true even on the supposition that the event is not determined.
If the future is not determined, then that means that all the facts about our world right now are compatible with more than one possible future. But what about the claim – which we can make right now – that it is true that event e is going to happen tomorrow? Isn't that a fact about our world right now – namely, that it is true now that e will happen? And isn't it inconsistent with e not happening?
That it is true that e will happen is indeed inconsistent with e not happening. However, the truth that e will happen is not a fact about the world right now. A complete description of everything in the universe at this moment does not include the fact that e will happen tomorrow. To put it another way, the claim that it is true that you are going to wear a blue shirt tomorrow isn't a claim about today. To say that it is true that you are going to wear a blue shirt tomorrow is to say something about tomorrow, and nothing more. It doesn't in addition describe some fact about today that would be different if tomorrow were also different.
If this is still unclear, think about actual events and things that might have been said about them. So for example, if you had said eight years ago that Obama would be the next president, you would have said something true, since that is in fact what happened. But it doesn't follow that it had to happen. Similarly, if I say now that Trump will not be the next president, my statement may very well be true. That is, if it turns out that someone else will be elected, then Trump won't be the next president, and my statement is true. But that doesn't mean it has already been determined who will be the next president.
Fatalism, then, doesn't make sense. And if fatalism doesn't make sense, then neither does the version of the foreknowledge argument based on mere knowledge – for as we have already seen, it's simply a version of fatalism. Thus, even though I can only have knowledge of some future event if it in fact does happen – just as a statement about some future event can only be true if it in fact does happen – everything about the mental state that we in this case call my knowledge is consistent with the future event not happening. My belief is exactly the same either way. It's just that in the case where it is true, it is correctly described as knowledge, whereas in the case where it isn't true, it is not knowledge. So for instance (to use an example that more clearly involves knowing than the question of what someone is going to wear), consider that I know there is going to be a solar eclipse on 21 August 2017. We call this knowledge because we are very certain that what I believe in this case is indeed true. And if indeed it is true, then it can correctly be said that I know the eclipse is going to happen. But this mental state of mine that we are (almost certainly correctly) describing as knowledge is compatible with the eclipse failing to happen (maybe a very powerful alien civilization will alter the orbit of the moon between now and then) – in which case it wouldn't be knowledge.
We are now ready to tackle the other version of the foreknowledge argument, the one based on God's infallibility.
To say that God knows infallibly that you are going to wear a blue shirt tomorrow is to say, first, that it is true that you are going to wear such a shirt (so far, nothing different here), and second, that God has a belief that cannot be wrong about what you are going to wear. That God has such a belief follows from the meaning of “infallible” – and it is this second part that introduces something different into the mix. If God cannot be wrong, then any event that God believes is going to happen cannot fail to happen. And that's where there is a problem.
Above, we saw that my belief that something is going to happen, even if it is correctly described as knowledge (if the event does happen) is in itself perfectly compatible with the event not happening. That is why my knowledge that you are going to wear a blue shirt tomorrow doesn't take away your freedom to wear a red one instead. Yes, it remains the case that if what I have is indeed knowledge, then you do in fact wear a blue shirt. But that doesn't mean you couldn't wear something else. And again, the easiest way to understand this is to see that the mental state that we describe as knowledge in this case is perfectly compatible with your not wearing a blue shirt. Even if it is knowledge, it could have turned out to be a false belief instead.
Now contrast this with the case in which God infallibly knows that you are going to wear a blue shirt tomorrow. His belief cannot be wrong. The mental state that we describe as his knowledge, then, is not compatible with your failing to wear a blue shirt. If it were, he would have a false belief. Thus, if God infallibly knows that you are going to do x, you have no choice but to do x. It isn't merely that you in fact do x; it's that that is the only thing you can do!
One final thing. It is important to realize that neither the foreknowledge argument nor fatalism have anything to do with causation. Many people think that determinism is the view that everything is causally necessitated to happen as it does, so that past states of the world determine its future states. But strictly speaking, determinism encompasses more than causal determinism. What all varieties of universal determinism (i.e., those that apply to everything rather than to some subset of things) have in common is the idea that the universe has only one possible history: that there is only one way things can turn out. And it's important to keep this in mind because otherwise one might make the mistake of supposing that according to the foreknowledge argument, God's knowledge somehow causes future events to happen as they do – which of course would be nonsense!
I bring this up because one difficulty some have with the argument is in “seeing” how the future is determined just because God has infallible knowledge of it. What makes you wear the blue shirt? The correct reply is that this argument doesn't address that question. It only shows that the future is determined (if its premises are true), not why it's determined. Maybe it's determined by the laws of physics, or because we live in static four-dimensional “block” universe, or for some other unknown reason. But that's irrelevant to this argument, and to demand that one explain what makes the future determined is to miss the entire point.