Is it acceptable for someone to take an oath (i.e. I swear by Allaah that I won't smoke another cigarrette) and include a curse upon oneself in the event that they do not follow through (i.e. may the curse of Allaah be on me if I smoke again)? If this is not o.k. then what should a person who has done so (out of ignorance) do now?
Praise be to Allaah.
First of all, the questioner should know that smoking is haraam. It appaears that he knows this, but if he does not then he should be told now, as this is what is agreed upon by the ulamaa (scholars), wise people and doctors.
The questioner has made a mistake by cursing himself. There are strong warnings in the pure shareeah addressed to those who uuter curses. For example:
(a) Abu Saeed al-Khudri said: the Messenger of Allaah (peace and blessings of Allaah be upon him) went out on (Eid al-) Adhaa or (Eid al-) Fitrto the prayer place, then he went to the women and said, O women, give in charity, for I was shown that you will form the majority of the people of Hell. They said, Why, O Messenger of Allaah? He said, Because you curse too much! And you are ungrateful for good treatment
(Narrated by al-Bukhaari, 298; Muslim, 80).
(b) Abul-Dardaa reported that he heard the Messenger of Allaah (peace and blessings of Allaah be upon him) say: Those who curse will not be witnesses or intercessors on the Day of Resurrection.
(Narrated by Muslim, 2598).
Cursing means expulsion far from the mercy of Allaah, so how can any Muslim pray for such a thing for himself?!
3. If the question smokes again, he is committing a sin by doing so, so he has to repent and also to offer kafaarat yameen (expiation for breaking his vow). Kafaarat yameen is: feeding or clothing ten poor persons, or freeing a slave. If he is unable to do that, then he has to fast three days.
And Allaah knows best.