One of the worst things you can possibly do as a DM is to railroad your PCs. On a small scale, it might not matter much, such as telling the player he turns around when he hears a noise. I find it to be a lot of work to ask players what they do every time I describe something.
Me: "You hear a banging sound behind you."
PC: "What was it?"
Me: "You're not sure, it was behind you."
PC: "Can I look?"
Me: "Yes you could, are you going to?"
That's painful. Really painful. Here is how I solve it.
Me: "You hear a banging sound behind you, a quick glance shows a loose shutter blowing in the wind. You continue down the street."
Done. It does create the problem that when there is suddenly some mechanical benefit or penalty possible, I need to change how I handle it. If there was a monster behind the player with a gaze attack, I would need to ask the player if they look. This tips them off to something more than normal.
Railroading on a large scale is bad. PCs should have options. I create a villain, a plan and a setting. The PCs choose to fight or ignore. Now the thing is, my villain will move forward with his plans regardless of the PCs' actions.
My hope for most campaigns is that the PCs act independently. I try not to force them to react to a villain or to defend themselves from a villain. Rather, I hope they will identify strategic goals, create their own power base and try to change the world.
I am planning a series of posts about this topic.
As always, take care and have fun.