For several years, I’ve been using Visio with custom templates designed to represent every possible web part in MOSS 2007.