For about 10 years, I have been teaching Inform to students (mostly English majors) in courses that combine writing with media production. I start them off with HTML and CSS (just to get them familiar with the level of accuracy required of any kind of coding). I've also taught Flash, but this fall I will probably drop it to make more room for Scratch.
The point is not to make these English majors into professional programmers, but rather to familiarize them with fundamental processes such as iteration, versioning, scaling, beta-testing. To someone who has never written a computer program, even very simple concepts such as if-then statements and variables can be completely baffling. I notice that students who play old-school text adventure games are at first very unforgiving about the limitations of the parser, but after they've programmed their own short games, and watched their beta-testers come up with reasonable vocabulary words that they expected the programmer to have implemented, students are more ready to appreciate when a text-adventure author has done a good job anticipating the user's actions. This is a lesson that, I hope, translates to their encounters with other interfaces, making them more willing to take beta-testing seriously, in the future, when they might be writing the copy for team that includes programmers.