Usually it is not the case that the web host restrict which characters are allowed, but rather that the filename is case sensitive.
On Unix based web hosts, WORD, word and Word often means three different things, and on Windows based web hosts, it will not necessarily be interpreted differently.
Here is my suggestion:
(1) Check the filename's case.
Note the exact case of the filename. This is usually displayed correctly in Windows Explorer, depending on your setup, but, if it is not, you can check it as follows:
Either open a dos prompt and go to that directory and perform the DIR command and read the filename there (as Windows XP can "prettyfy" filenames in its display); or, you can rightclick on the file, choose properties, and read the filename there.
(2) Rename the file to something simpler
It is often possible to miss-spell a name such as
supercalifragilisticexpialidocious.jpg. Rather call it super.jpg, and make sure it is all lowercase letters.
(3) Edit your web page
Since your filename is now in lower case, make sure that you reference the file in your web page in lower case.
If this still doesn't work, I can edit the code for you.
Regards,
FolkLore