You can in fact start a file with a hyphen - it's just that Linux assumes if you use it in the ways you've suggested, that you're trying to specify an option. And it does so even if you escape it with quote marks, or bashslashes, or whatever.
The trick is to use a double hyphen "--" to specify the end of options. Thus
Code:
mkdir -- "-daily backup-"
will work, and the quotes are only necessary because of the space - "mkdir -- -daily\ backup-" will work just as well, as does "touch -- -foo", etc.
You can also prefix the filename with the director it's contained in - so
Code:
mkdir "./-daily backup-"
works just as well. It's personal preference as to which one you use/remember!