I'm afraid I have to agree with solcroft on this one. The way start seems to behave is that:
1. normally, it uses the program associated with the file extension (and if there's none associated, it asks the user what program should it open it in)
2. however, if the file is a valid DOS/Win16/Win32 application (i.e. has a MZ header), it really executes it regardless of the extension, and its association settings.
This doesn't seem to be documented anywhere (in official MS documentation - or did I miss something?), but I was able to verify this behavior by analysing the implementation of the start command; it first uses the CreateProcess API function, used to execute applications; only if this call fails, it tries to use the ShellExecute function which uses the extension association settings.
BTW alan, one explanation of the fact that it didn't work on your machine would be that (maybe) you used a COM file virus (and not EXE) [e.g. eicar.com] - as COM files don't have any recognizable headers, it would behave exactly as you described.
Thanks
Vlk