in reply to CGI inconsistencies
As noted above, it's always difficult to be precise without sufficient data, so here are a couple of general principles that I always try to bear in mind in these situations...
1. It's pretty much always something you (or at least somebody you work with) did. Along with just about every other programmer I know, I spent a great deal of my first few coding years looking for 'bugs' in the database, the OS, the server, the libraries - anything but my own code, which I knew must be right :) After a while, it began to sink in that all these things were probably tested and refined rather more than my code was.
2. Again, it's nearly always whatever you last did. Code that's been running for a while tends to keep running if you don't touch it. As soon as you open a file for editing - that's when it breaks :) Even something as simple as d/loading from a Unix server to a Windows machine, just *looking* at the code, then saving it out again can break things unless you've got all your FTP line endings stuff sorted out. If you haven't touched the script recently, check all the last-modified times for your script and its dependants modules anyway - *something* will have changed.
Hope this helps
ben