Yes. Most airlines generally will not upgrade a person who has requested a Special Meal and I think CX is no exception. Doesn't matter if it's 'just' a vegetarian meal and he'll make do if he got upgraded. You have to remember that upgrades are not processed 24 hours ahead of departure but rather just a few hours if even prior.
Special meals may be because the person is religious and has to just have that specially prepared meal or due to dietary conditions. CX cannot afford to upgrade and serve the economy class meal. Too much bother, and too much trouble trying to track down the missing passenger from the manifest.
Try and ask your friend to refrain from ordering the special meal. Or eat around the edges so to speak. I have seen some far odd cases when the person does get upgraded without the special meal at check-in, and the check-in agent will usually ask if it's ok. ie Do you want your meal or do you want to be upgraded? Remember to answer carefully.