Federal MP Helen Haines is fighting for life after she was struck several times by a LandCruiser outside her electorate office.