Combatants should be using cover, but combatants shouldn't be able to consistently gain total cover
You're correct that the rules for sniping specifically are problematic, but I think the issue here may be one of being too generous with allowing obstacles to grant total cover.
A creature that has total cover typically can't be attacked, can't be targeted by most spells that specifically target it, and won't even be affected by many area effects. Total cover is awesome. Total cover is borderline invulnerability. Total cover also usually isn't a lot of fun. For example, a ranged combatant who exits total cover, makes one or more attacks, and reenters total cover sees his foes deal with him by either rushing his position and ganging up on him or taking ready actions with the action Shoot that really annoying dude and the trigger when he emerges from behind that freakin' 10-ft.-high stone wall. There just aren't a whole lot of other ways available to the foes to deal with that dude short of, for example, obliterating whatever's providing the ranged combatant with total cover.
However, ranged combatants that can exit total cover, attack, return to total cover are rare. Such a task usually requires taking a feat like Shot on the Run (Player's Handbook 100) that piles the feats Dodge (PH 93) and Mobility (PH 98) onto what's already the game's most feat-intensive combat style after two-weapon fighting. Added to the high cost to acquire the feat Shot on the Run is that it A) usually isn't all that useful and B) limits the typical attacker to one lone attack with the attacker's ranged weapon. Combined, this makes this fighting substyle something very few folks can put to effective use.
Yet all kinds of obstacles can usually provide less than total cover. Trees, for example, are an actual thing that's described in the Dungeon Master's Guide on Forest Terrain. That section says, in part, that for typical trees the DM should
[p]lace a dot in the center of each square that you decide has a tree in it, and don’t worry about the tree’s exact location within the square. A creature standing in the same square as a tree gains a +2 bonus to Armor Class and a +1 bonus on Reflex saves (these bonuses don’t stack with cover bonuses from other sources). The presence of a tree doesn’t otherwise affect a creature’s fighting space, because it’s assumed that the creature is using the tree to its advantage when it can.… [M]assive trees… take up an entire square and provide cover [n.b. not total cover] to anyone behind them.… (87)
Thus, without moving at all, the side that's using the trees as cover can launch attacks at foes, and the other side can launch attacks at those foes that are using the trees as cover. Likewise, unless they're Medium or bigger rocks, rocks and other low obstacles provide cover but don't usually provide total cover. Other gems like these that the DM can add to his tactical maps litter the Dungeon Master's Guide on Wilderness Adventures (86–95).
(One issue with cover might be that, at later levels, anything short of total cover isn't worth pursuing as the value of what's become only minor bonuses to Armor Class and on Reflex saving throws has declined and the value of the action cost needed to get to the cover has increased. This isn't really an issue with cover, though, but an issue with mid- to high-level play that mandates mundane warriors take full attack actions all the time or risk feeling like they're not contributing.)
In short, it should be rare and obvious when a creature has total cover, but less than total cover should be fairly common, especially if you're the kind of DM—and, from the question, it sounds like you are—who's willing to draw detailed tactical maps.