How does smoking, an environmental factor, cause cancer, fundamentally a genetic disease?
Because cigarette smoke contains many carcinogens.  Carcinogens can cause cancer by directly affecting the genome.  Wikipedia has a list of those present in cigarette smoke, which includes classics such as lead, benzene, and formaldehyde, not to mention radioactive polonium.