To call some commands when running xelatex on a file, I use an old trick that was quite useful when I wanted to run commands for pdflatex, and not for plain latex: I check that a given primitive is present or not, and if it is, do XeLaTeX stuff, else just do normal things:

\
ewif\\ifxelatex
  \\ifx\\XeTeXglyph\\undefined
    \\xelatexfalse
  \\else
    \\xelatextrue
  \\fi

% You can now use \\ifxelatex to execute XeLaTeX-specific stuff
\\ifxelatex
\\usepackage[french]{polyglossia}
\\usepackage{xltxtra}
\\setmainfont[Mapping=tex-text]{Times New Roman}
\\else
\\usepackage{babel}
\\usepackage[utf8]{inputenc}
\\usepackage{times}
\\usepackage[T1]{fontenc}
\\fi

The trick here is the check whether the \\XeTeXglyph primitive is present; if it is, the file is being XeLaTeX’ed, otherwise it’s probably PDFLaTeX’ed, or even LaTeX’ed, or whatever. The same can be achieved by importing the ifxetex package, which provides a ifxetex command.

Strangely enough, when defining french as a documentclass option, it doesn’t automatically get passed to polyglossia, as I’d expect it, as it does for PDFLaTeX – almost made me believe for a while that polyglossia was broken for the French language, when it was just not getting the option.