I don't think I'm an exception in this regard, but the first adventures I played were purchased modules. Back then I was a kid with about as much creativity as the 1998 version of George Lucas, so I thought this was all there ever was. For some strange reason, I seldom used modules much as a GM. Though I relied on modules as a sort of internal standard for quality, I tended to use story fiction as inspiration for adventures -- unfortunately for my players, who found my narratives linear and boring. Of course they were -- I was simply walking players through someone else's story!
The first modules were not much more than a set of maps and area descriptions. On one hand, this gave the players a fair amount of freedom to explore. Clever authors could even give an adventure some semblance of plot by sequencing key encounters in progressively deeper areas of the "dungeon". This had the risks of the players reaching designated areas out of order (with disastrous results to the plot) or avoiding that by giving the dungeon a linear structure (robbing the players' freedom). As a result, the generally acceptable method was to simply leave the players unaware of the existence, or at least location, of the next area until a key piece of information or evidence was discovered. This kept the "spoilers" safely inaccessible while still giving the players an illusion of freedom. Even today, I consider this a "sweet spot" for adventure complexity; this recipe is plenty of fun and easy for the GM to manage. The downside is an overall feeling of passiveness -- nothing happens until that next bit of information is acquired, so there's no sense of urgency. You won't find out more about the Spell to End the World until you reach room 67 on map 4, and since you're scripted to discover the secret before the villain does, the world is arguably safer if you don't bother at all. (This is Cloud's Dilemma -- in a game narrative entirely scripted with location triggers, the surest way to keep both your girlfriend alive AND the world safe from destruction is to simply not play the game beyond a certain point.) Yes, the GM can say there's some sort of race against time, but since everyone knew early modules were 100% area-based it was impossible to not meta your way through this formula's feeble attempts at dramatic tension. Area-based adventures are best left a voluntary experience where the players explore the map simply because it's there to be explored. That's perfectly fine for treasure hunters, but it's not particularly heroic.
Fortunately, adventure modules kept evolving. Even when I was a lonely gamer without a group, I kept buying them to stay on top of their progression. When the Dragonlance adventures came out, I was taken aback by the first module, "Dragons of Despair". In addition to containing oodles of flavor text and what is still, to me, the most beautifully crafted dungeon in gaming history, it was the first adventure I'd seen to have scripted events. It was a profound innovation -- events that occurred independent of where the party was. The party could not avoid them by simply being in another place. With a sort of timidness akin to a prototype not yet ready for the public, the events were few, brief and largely inconsequential. The flow of the narrative was still largely dictated by deliberate placement of information or items -- "hooks" -- that led the party from one location to another, but the few scripted events were enough to shake jaded gamers out of complacency. I didn't realize it at the time, but this balance between mood, events and location was why the module was such a early masterpiece.
The next Dragonlance module I bought, "Dragons of Faith", was the first one I'd purchased upon release. I'd skipped ahead to the 12th adventure in the series. I chalked it up to excitement at the time, but I was both poor and, in hindsight, far more interested in the design than the campaign (I found the PCs too unlikeable to care about them). The more I pored through it, though, the more confused I became -- and not because I missed the plot. Regardless of what happened before in the story, the module was a hopelessly disorganized mess of events and locations. The only way I saw it working was by directing the players like a car on rails and fudging countless dice rolls. More than anything, it looked not fun. Until then, as a child, I had the impression that published modules were inherently perfect -- that if it came with a cardboard cover and a price tag, it was a flawless product to be emulated. It would be many more years before I finally "got it", but this was one of the first cracks in the walls of my prison of doe-eyed naïveté.
As years went by, I kept buying more modules. I still have a stack of them I've never used for anything more than just research on adventure design. I considered that pathetic, but now that I can identify the strengths and flaws, in hindsight I don't regret it anymore. For the knowledge gained, it was a worthwhile investment. I was inspired by the things they did well -- areas that were fun to explore, events that built mood, NPCs that made the world more engaging. Noticing the flaws took longer, and took some firsthand DM-ing to realize (for which I apologize to my former players to this day) -- over-reliance on scripted events, attempts to force one genre into another, etc. It probably took longer than it should, but I built up a rather thorough list of do's and don'ts, not limited to:
Set the right expectations. The DM sets the tone, and should keep it consistent. If the campaign is going to be based on Monty Python and the Holy Grail, it's best to communicate that up front before the "real role-player" spends six hours writing up backstory for a suicidal cutter with black eyeliner and a teardrop cheek tattoo. If the campaign will feature heart-rending betrayals and disturbing horror, it's perfectly OK to reject that gnome pyromaniac with 6 Wisdom who dresses up as a court jester and has an allergy to undead. Don't be too overbearing, but the characters should fit in the campaign's context. Finally, if the players should expect character death, they should be warned up front.
Prepare. Some GMs are better than others at improvising, but I've had bad experiences with those who think they can rely exclusively on it. For example, during one session where the DM had recently fallen in love with improv style, I had been consistently rolling about 15-16 for my saving throws, regardless of whether the result was a success or failure. The range of results was remarkably narrow. Midway through the session, I had to roll yet another saving throw, and the DM blurted out that the DC was. . . 17. As soon as I heard this, I snapped. I yelled that he knew damn well that was the score I couldn't make all night. Note it would've been perfectly acceptable to set this particular saving throw DC IF it was done in advance. This wasn't a target number I found unreasonably difficult for my PC's stats; rather, it was a result I was consistently unable to make that particular night. Because he was running the session on the fly, with absolutely no stats determined in advance, it was impossible for him to be unbiased. On the other hand. . .
Be ready to toss a lot of material out the window. You can create an elaborate plot built around a dizzyingly complicated maze built in three dimensions using special software, but it'll be all for nothing if the players can find no compelling reason to go there in the first place. Now, this can often be addressed by dropping hints about treasure or adventure, but even within the dungeon, don't expect the party to search everything. They may never find that +9001 Sword of Awesome Oblivion because you happened to hide it too well (see also "don't bury your clues too deeply" below), but certainly don't follow up by gloating that they missed the opportunity. Besides, you can avoid that problem altogether by. . .
Tracking the right details. Players don't care about holidays or the name
of every farmer; they're adventurers, not census workers. On the other
hand, details like weather, regional rulers, time of day and building
material do matter. Uncontrolled factors like weather should be
randomized to an extent (no, it's not always a dark & stormy night when the
evil boss is in town) yet tracked. Predetermined details like the
structure of a building should make sense; just because it's fantasy
doesn't mean every peasant will live in a reinforced stone structure
unless they happen to live in an area where doing so makes sense (the Anasazi, for example).
Get the PCs involved. By this I mean the PCs have to care about the world for the players to find it emotionally immersive. You can set up all sorts of conspiracies and rescue missions and whatnot, but the events will blur in the players' minds unless there is something personal at stake. The way to bridge the gap is with background detail. GMs typically consider backstory to be just something players write to create some semblance of character depth. This misses the point, and opportunity with it. GMs should educate the players on the campaign setting, and then focus the backstory efforts on tying the players to various NPCs, locations, items, events and legends. This gives the PCs their own reasons for exploring the world without the GM hand-delivering them like a milkman. Similarly, don't miss an opportunity to turn any NPC into a recurring character. Unfortunately, the most common GM mistake is to decide beforehand which NPCs will be recurring or not; often the party will feel stuck with an annoying character while a more interesting one is quickly tossed aside. All NPCs should start out as a rough set of stats & details, to be fleshed out as they become more relevant. Conversely, GMs will often leave potential for depth withering on the vine. Do the PCs always stay at the same inn whenever they visit town? Maybe it's time to flesh it out a bit, and I don't mean by having the innkeeper ask the party for a favor or otherwise eat up the party's time. Remember, the innkeeper is considered bland because the party's there to just rest up safely. There's no reason to deliberately mess with that. Just think about ways to make the experience more unique and characteristic -- for example, does the inn have a key appeal, like a gifted bard or under-the-counter contraband? The players can decide what's interesting from there; it just doesn't have to be "yet another inn".*
Keep the rewards varied and balanced. Many gaming guides properly warn GMs about balance. Too little reward gives the players the feeling that adventuring is futile; too much reward prematurely robs them of reasons to adventure at all. However, the conventional wisdom here seems to be playing it safe with quantity over quality. Money may flow toward the players like a river, for example, but coveted items are nowhere to be found. Or, authors of published modules would rather shower the party with items they EXPECT to have rather than risk upsetting balance by giving a PC a powerful item. My personal approach is the opposite. I've never seen a campaign get unbalanced by giving a character one or two relatively powerful items (e.g., a +3 weapon for a 2nd-level character) as long as no player feels neglected and it's not on top of a flood of money and other goodies. I'm not enamored with the image of a party going through magical equipment like they're wearing out socks, and going from something like non-magical to a +3 weapon gives players a solid sense of an upgrade. Progression from +1 to +2 to +3 to +4 over the course of a long campaign feels as incremental as car maintenance. Don't most fantasy and fairy tales focus on a few key items, whether it's a magic lamp or a mithril shirt?
Don't kick the PCs when they're down. The sole exception would be at the start of the game, as players generally accept that starting characters are weak -- overcoming the weakness is half the fun. However, after only a few sessions most players feel their characters should be able to handle any threat they face. No one games for a feeling of perpetual helplessness. Feel free to challenge them, deceive them and even defeat them, but having some evil boss constantly laugh at their puny efforts quickly gets old. This is something of a scope issue -- a dragon won't eye a mid-level group nearly as seriously as a gang of bandits, for example -- but it's reasonable for players to expect those in their characters' immediate surroundings to at least take them seriously.
Don't rob the PCs of power or freedom, physical (such as jail) or mental (such as brainwashing). Again, it's OK to mess with beginning characters to an extent, but beyond that, I've found over the years that players will fiercely resist any attempt to blackmail, coerce, or imprison their characters against their will. Hostage situations are a delicate exception, as it's something villains are likely to do. However, players can sniff out whether the hostage-taking is due to a villain merely being villainous or the GM wanting the PCs to behave a certain way. In the latter case, the players are likely to self-destruct their characters just to tell the GM to fuck off. Similarly, don't make an adventure "more challenging" by either neutralizing or removing the PCs' powers. The players want their powers to be effective; that's the whole point of character design.
Don't bury your clues too deeply. If you lead the players down a long corridor and 2/3rds of the way down there's a message in invisible script giving a vague hint for a puzzle built into what otherwise looks like a normal statue among twenty identical ones in a room with nothing else of interest. . . don't be shocked or insulted if the players don't figure it out. The clues don't need to be obvious either; in this case, let realism be your guide. For example, if the party is searching for treasure that was buried by someone who intended on recovering it later, it will obviously be hidden, but possible to re-discover and certainly not inaccessible.
Don't rely too much on scripted events. This is a common GM mistake, and by "common" I mean pretty much every GM will do it until the habit is worked out of the system or the GM runs out of gamers to disappoint. It isn't that scripted events can never be used. The danger is that players often do unexpected things that make the event unlikely or even impossible. For example, if the script calls for a certain ritual to be completed so a town is destroyed and a villain gains immense power, but the party anticipated this and destroyed the entire temple to prevent it, any excuse you come up with to complete the ritual anyway will make the party feel that their actions don't matter. On that note. . .
Beware the NPC spy. Players don't trust NPCs, primarily because GMs use them as proxy reins to dictate the PCs' actions. If the NPC says, "We should go left," the players can't avoid the meta implications and will thus feel stuck between going left as the GM's willing sock puppets, or going right just to spite the GM and probably face certain (scripted) death. I recall one video game based on D&D, Baldur's Gate II, where an NPC supposedly slips sedatives into the party's food at one point. The NPC, Saemon Havarian, had "backstabbing slimeball scumbag" alarms and bells going off all around him, but you didn't have a choice -- you were going to be knocked unconscious, the slimeball was going to win (you don't even get the pleasure of killing him later), and all because you were forced to trust a character no one would trust. At the time I was amazed that a company would have the audacity to charge customers money for such an awful gameplay experience and cliche plot device, but plenty of GMs seem to feel this ploy is acceptable. It's OK to have NPCs tag along, in principle. However, whether or not the party trusts or even tolerates the NPC is not for the GM to decide, let alone assume.
Don't impose the PCs' capabilities on the players or vice versa. I'm an unathletic guy, in person. When I role-play a cybernetically enhanced combat cyborg, it's to get away from the fact that I'm unathletic. This gaming concept is generally accepted without question. Well, I'm not an eloquent guy either, so I shouldn't have to speak for my character when using a social skill. Skill checks exist to account for the fact that player skills and character skills don't and shouldn't necessarily match. A character should not find a task harder to do just because the player lacks real-world knowledge. Also, don't let a player haggle the difficulty of a skill check by using personal knowledge. You can always cite favorable or unfavorable conditions.
Do's and don'ts are convenient, but they fall short of what's needed to create a successful adventure. It's like a set of cooking guidelines, whereas a complete module is a recipe. The modern module formula that seems to work best is a sort of free-flowing set of NPCs (complete with their own agendas), relevant details like local weather, legends, detailed areas to explore, and a few confluences that make them relevant to each other. The location designs are loosely based on the old format, with encounters and items strategically placed to encourage both exploration and a predictable narrative flow. However, the pacing is driven by NPC agendas that don't rely on player activity; the narrative's events proceed proactively. For example, I can create a powerful item that rests within a dungeon, and an NPC desperate to recover it. The players are free to get involved in any way they choose -- including not at all, though they'll quickly run out of things to do if they refuse every excuse to go adventuring. (As bizarre as it seems, I have been in groups that behaved like this.) In that case, the NPC simply aquires the item and triggers the next event in the narrative. Ideally, though, the mere existence of the item should rouse the players' curiosity, which all but ensures they will interact with the NPC, the location to explore, or both. Is the NPC an enemy or an ally? Will the players thwart his/her plans? These are the most important details of all, the events that drive the story, which is precisely why they are left for the players to decide with actions and dice.
*Now, some players really don't care about campaign depth; they just want
to kill & collect, which is certainly not a sin. It is, however, a
baffling reason to game in the 21st century. Back in D&D's
infancy, video game technology was inadequate for creating the level of
detail offered by a tabletop RPG. Now, the opposite is true. If
exploring dungeons and hunting monsters is all that matters to a player,
there's no reason to use a tabletop system instead of a video game.