Great topic that deserves a wider discussion... and in a broad context, not just re web files, but re computer files in general. The approach is conditioned by my having come up in computing via MS-DOS, which had an 8-character limit. One of my early uses for a computer, though, was video editing on an Avid (on a Mac), where you were allowed almost infinite variation in naming video clips... enough variation that clips could get lost.
I've not thought my approach through explicitly... and it varies from situation to situation.
I think the primary thing I look at is eventual sort order and how I'm going to want files grouped. Best strategy seems to go from the general to the specific... in the order of anticipated sort-priority for a particular file group.
Absolute consistency for simple things like punctuation, use of hyphens and spaces, etc, is necessary for proper sorting. I tend to try to avoid spaces in computer files even when Windows allows them.
I tend to try to abbreviate certain identifiers, like commonly used project names, and make sure they're mnemonic... and also make sure they're consistent. For "microsoft," eg, I could use "ms" or "msft," but I can't use both.
If I'm going to need to sort by date within a file group, I'd provide date info in a form that would sort well. Eg, today is 20070428. Depending on other factors, this date, where needed, might go up close to the beginning of a filename or closer to the end. This might be important for versioning or correspondence... not so important for files that don't have a date sequence.
On PPC landing pages, in a situation where the landing pages were going to be in the root folder, I just suggested the following to a client, because I thought it would give them the best combination of site and campaign management.
landg_ggl_gizmos.html
landg_ggl_widgets.html
landg_msn_gizmos.html
landg_msn_widgets.html
landg_yah_gizmos.html
landg_yah_widgets.html
If all the landing pages were in a folder (I still call them directories), I'd drop the "landing" part of the name and assign that to the directory, as in...
landing/ggl_gizmos.html
landing/ggl_widgets.html
The above works well for projects planned in advance, but doesn't always work out that way with files that evolve on my computer.
I might find I've put a Windows XP shortcut, eg, into any of the following...
software/windows/shortcut
microsoft/windows/shortcut
software/microsoft/windows xp/shortcut
window/xp/shortcut
etc...
I'm not happy about this latter sort of chaos, but my understanding of sorting necessities within any new area usually evolves as I dig into the subject... and the input rate often outpaces my time for organization. This might be off topic in this thread... but I'd love to hear thoughts for handling this particular situation.