If you have a fenced backyard and a pet, a dog door is an awesome investment. However, most of them don't do a great job of keeping the elements out of your house. The solution is a two-flap door, and you can build it yourself.
First, a quick explanation of why this design is superior to a typical, off-the-shelf dog door, courtesy of Instructables user gwylan:
A dog door that overlaps the main (human) door around its edges when closed is inherently more weather-resistant than one that just fills the opening. Only problem is that — unless you have a very clever and agile dog — this only works one way. With the two-flap solution there are in fact two dog doors: (1) the larger one which overlaps the outer surface of your main door, and which can be pushed open from the inside, and (2) a slightly smaller one that fits inside the other and can be pushed open from the outside. Both have magnetic catches that keep them in place when not in use.
To create this dog door within a dog door, you'll need some plywood, a thick plastic sheet, magnets, and some other odds and ends. The precise size of your door will depend on the size of your dog, but most of the actual work is fairly simple. It might not give you as much geek cred as a tweeting cat door or a bark-activated dog door, but it will get the job done while keeping the weather out. Check out the Instructable for a complete guide.
A Dog Door: The Two Flap Solution [Instructables]