Unfortunately, this is the luck of the "draw" (pun intended...
We have been on small ships like the Holiday in July 2003 with absolutely no smokers and then did that same ship 3 months later....and there was a boat load.
We just sailed the Elation in January.
There are designated smoking areas....public ones are the casino, piano bar, disco, cover band lounge and one side of the AFT bar before you walk into the AFT theater.
Smoking is allowed in cabins and on balconies.
Smoking is allowed on the STARBOARD side of the ship outdoors and out by the pool but not inside on Lido.
On the Promenade, while smoking is allowed in the Casino...they are not allowed to walk from venue to venue with a lit cigarette. However, depending on the clientele onboard for your cruise, some folks don't follow the rules.
In 40+ cruises with Carnival, we have only walked into a cabin a couple of times that you could tell had been smoked in.
IF that happens, don't panic. The Cabin Steward can replace all the soft materials (towels, duvet covers, duvet, pillows etc) and run the Oz machine for one hour. You can not be in the room when the Oz machine is running. I also carry a travel size spray of Ozium (Walmart Automotive section) just in case.
Also, IF you have smokers in the cabins next door...it can travel from their cabin into the hallway (there is a large space under the doors)...so we usually put a towel down at night to stop any from seeping into our cabin.
Also the bathroom vent (IF shared with a neighboring cabin with a smoker) may need to be closed to stop it from seeping into the bathroom.
Again....all of this is just precautionary because you probably will not have an issue.