Most publishing contracts include language to prevent the author from writing a similar book for a competing publisher. The language undoubtedly differs from publisher to publisher, but the intent is the same.
The language used is often very broad and general. Authors sometimes interpret this as the publisher trying to prevent the author from writing magazine articles or speaking at conferences on the subject. Nothing could be further from the truth. Both of those activities are likely to result in promotional opportunities for the book – publishers love that, of course.
If you, the author, feel the language is too broad, talk to your editor. Your editor probably has the ability to fine-tune the language so that the non-compete is very specific and more limited. For example, if you’re writing an entry-level tutorial on Visual Basic, the language could be tailored to allow you to write books on other aspects of Visual Basic. Your editor will probably want you to bring those future proposals to him/her, but if they build a good relationship with you that’s likely to happen anyway.
One other point about non-compete language: Authors sometimes ask why it doesn’t “cut both ways”… Shouldn’t publishers be obligated to not publish books that compete with ones they’ve already published? Sure. It only makes good business sense, especially in this challenging market. I’ve certainly been guilty of publishing too many books on the same topic for the same audience – I’m always trying to improve here, but I admit that it still happens from time to time.
Here is perhaps the most important part of this post: Before you ever sign that publishing agreement with your editor, ask them what other books they’re planning on this topic, how are they different from your book, etc. As a partner in this venture, you have a right to know what the full publishing list looks like. If the answer is vague or you feel there’s at least one other book that’s pretty close to yours, you might want to consider signing with another publisher.