A few comments to followup.
My DNS servers are not ISP supplied. I'm not a typical Internet user, I run my own servers over a high speed business internet connection -- complete with several hours of UPS power and generator to boot. As such, my DNS servers are my own and their performance parameters quite well known to me. They are continuously monitored for performance and any critical delays in serving authoratative records generates automated alarms (there is no point for generating an alarm for non-authoratative/recursive queries since these are served by third-party servers and beyond my control). In my experience, the best way to debug DNS issues is via the linux 'host' command coupled with tcpdump and/or ethereal packet capture and review -- you can follow a lookup from start to finish.
I've suspected that your NS1 and NS2 were the same physical machine though I hadn't positively confirmed that -- they both seem to suffer identical performance issues at the same time -- a poor setup on the providers part as they should have moved atleast one of them to a slave server (setting up a caching slave is pretty trivial on their part and one server should handle many thousands of customers). Nonetheless, the resolution of NS1 and NS2 should *not* depend exclusively on NS1 and NS2 since the IP addresses for these two unique records should be provided by a top-level (registrar) DNS server at the same time the initial domain lookup for "ncwoodworker.net" is performed. In other words, while I need a functioning NS1 and NS2 to perform lookups *within* ncwoodworker.net I should never be unable to resolve the nameservers for ncwoodworker.net since this response is *not* provided by NS1 & NS2 but rather by a registrar's top-level DNS server whose job it is to resolve a query requesting the authoratative servers for the ncwoodworker.net zone. This behavior is critical to proper DNS functionality because the DNS servers NS1 & NS2 can not provide authoratative answers to a querying DNS server until the IPs for NS1 and NS2 become known to the querying DNS server, for this reason they are included in the answer to the initial top-level NS-record lookup for ncwoodworker.net.
Running the SQL and web (and whatever other server processes) on the same machine greatly increases the risks of timeouts occurring. Whenever server activity peaks and either CPU or Disk IO resources (or worse, Memory) become starved (due to most any event) timeouts become inevitable. I made that mistake many years (~12) ago myself, mea culpa. As counter-intuitive as it may seem, once I had moved my web server to a less powerful server, overall performance improved by orders of magnitude. Nowadays, I am very careful about what services I allow to share a physical server as a result of that lesson -- especially services that can starve Disk I/O or CPU resources since they will tend to fight one another quite viciously in cases of interdependency (e.g. one service depending upon another in use). SquirrelMail is a good example for my purposes -- it places deceptively little strain on my web-server but a considerable strain on my mail server's Disk I/O. If the web-server were placed on the same machine as the mail server the mail-server's momentary Disk I/O starvation will cripple SquirrelMail (web) even though SquirrelMail places very little demand on the web server because the web server still needs some Disk I/O bandwidth to fulfill its duties -- resulting in annoying timeouts and erratic behavior that is avoided by running these two tasks on different physical servers.
I was not aware of the site's Debug mode, I'm assuming this is an admin item since one generally does not want users tinkering with debug output. Otherwise, I am still pretty new to vBulletin and have never had need to administer such a sight, so I'm not familiar with all its capabilities.
As for the img elements aspect, I'm really disappointed that the developers for vBulletin would not have exploited *any* opportunity to specify image dimensions -- especially for static images and fixed-size ads -- since doing so *greatly* improves site rendering speed by allowing the browser to assign place holders until such time as the image download completes. As a former developer, I always considered this SOP because the performance improvement is literally night-and-day with respect to end user experience. Modifying PHP code is not terribly difficult (license issues aside), but it would be an awful hack for something the system ought to be doing for itself. Thank you for elaborating on this issue.
Steve, I really appreciate your comments and taking the time to respond to my post. I share the above comments in the hope that they will ultimately prove useful to the NCWW admins. If not, I apologize for the additional commentary.
Best wishes to all!
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)