There is the possibility you forgot to check the box 'startup stage' as well. Without that, you'd have to do a setStage to get it going for real I think. I agree with making sure your property is filled first though. As for the second person's code, do you have a stage "0"? If not, you may have to set this to your started stage.
I haven't messed around too much with using functions as booleans, but as written I'm not sure if doing an 'if thequest.Start()' would return something meaningful. You may want to try an isStopped or isStarting. Also, if the quest is non-repeating you could do a getStage to see if it's triggered.
I have a stage 0, which is the startup stage and the required Property is filled.
The wiki, from what I could gather, said that .Start() returns a true or false value, which is dependent on whether the quest was started up successfully or was not started at all, but to make absolutely sure I have also written a debug script which tells me whether the quest is currently running. For that I used the .IsRunning() function, but that one tells me it won't work, as well. So as a last resort when I use the console with the command player.sqs for my quest, it shows that stage 0 was actually set, however quest related scripts still didn't activate.
Alright I did a new test on this whole matter with an entirely freshly created quest. It works now. So I'd assume either one of the aliases or one of the scripts didn't work out as planned, but I believe that it was the aliases is most likely. So disregard what else I posted, the .Start() works fine and I must simply have made some stupid mistake somewhere else.