Although most operating systems allow extremely long filenames, it's best not to make them excessively long.
If you have a page that has a URL like "http://www.example.com/example-of-a-filename-that-is-extremely-lengthy.html", and some one refers to that page in a web message board, many forum software will shorten that long filename so that it fits within the confines of the browser window. The URL is thus shortened to something like "http://www.example.com/example-of-a-filename...html". At the same time, the software usually also turns the text into a link pointing to the correct full address. Which is fine. So far.
The problem comes when somebody else tries to copy that link to some other post by simply dragging their mouse across the actual text, copying and pasting. This results in a new link with an embedded ellipsis. Such a link will obviously not be pointing to your web page.
In view of this, you may want to restrain yourself from creating overly long filenames, no matter how descriptive you think Custom Web Design may be. If your page title is very long, just include the main words. You can do this, for example, by dropping things like the articles ("a", "an", "the") and prepositions ("to", "on", "from", etc).
Since you shouldn't use spaces in your filenames, how should you separate the words? The astute reader will probably have noticed that the example filenames I provide in this tutorial have their words separated by the hyphen character. The hyphen character is regarded by search engines as a word separator, much the way a space is. It doesn't have the disadvantages of the space character, however, in that you don't need to encode it in a URL. As such, it is a good character to use as a word separator.
Incidentally, you should not use the underscore character ("_") to separate words. Although the underscore visually separates words to humans, at this time, many search engines just see it as another letter of the alphabet. As such, if you write a word like "joined_word", the engine will not see it as two words "joined" and "word" but as a single word that has an embedded underscore.