His main opponent was a puppet of a totally marxist appease Islam congress party. Modi was easily the best choice.
until the late 70s the dominant party was the Indian national Congress -- a party of Gandhi and Nehru which presided over Indian independence. It was left of centre but then veered heavily left in the 70s (after Nixon threatened India with the USS Enterprise).
From the 80s onwards there have been different parties -- most are based on socialism, then on casteism, and now there are many regional parties -- remember that India is a continent, not a country, a place with at least 30 to 50 different "nations", so the "regional parties" rule over "states" that are countries in terms of separate languages, culture, even religion
At the top, in the late 90s there turned out to be 4 "coalitions" of parties:
So, for the current elections the only options were 1 and 2. But the Congress had run out of ideas after 10 years of rule. Arguably it ran out of ideas in the first 2 years. AFter that it had coalitions and had to pander to various allies of the moment from groups 3 and 4
Plus, it was led and projected as it's prime ministerial candidate, Rahul Gandhi -- a well-meaning guy, who had no qualifications besides being born right. And Indians it seemed are not fools to elect an Obama-wannabe
The BJP on the other hand had a strong candidate -- a former chief minister (de facto "president" in US terms) of the nation of Gujarat.
Gujaratis are known to be good at business and Modi enabled hte state to have a 10% year on year growth with pro-business, anti-corruption and pro-infrastructure policies
in addition, he was from a lower (not lowest) caste, not the Brahmins who normally run the BJP (like Vajpayee or Advani) and very decisive
The Congress had been relegated to supporting Moslems, cynically as it's other bases eroded. They played on non-religiou Moslem fears of the RSS, but cynically. The Congress calls itself secular but it used and uses religion to further its corrupt rule -- case in point the Babri Masjid -- instead of resolving the issue, it let it fester for political purposes
---------
Modi was the best choice for any Hindu -- most Hindus I know would hesitate if there was a choice between a "Hindu from the BJP" and a "HIndu non-BJP" who were both as good as Modi. But in this case, R Gandhi was a useless choice
For a Christian there was a slight dilemma due to the BJP's links with the RSS, but that has died down recently and as I pointed in a post above, the RSS realises that whipping up anti-Christian sentiment doesn't work, leave alone win elections
For a Moslem, if you were religious, then the Congress. if you were corrupt (which tend to be Islamic in India), then the Congress. If you were an Ahmaddiya or Bohri or Ismaili Moslem, then you would be torn, very torn