>Although difficult, it is possible for Steel and Poison-type Pokémon to be poisoned. In Generation II, the move Twineedle could poison Steel-type Pokémon; however, this was removed in future Generations. A Poison or Steel-type Pokémon can be poisoned if its type is changed through a move like Soak, is then poisoned and switched out. When the Pokémon is sent out again, the poison status will remain even though the Pokémon's type has changed back to Poison or Steel. Also, poisoned Pokémon who evolve into a Poison- or Steel-type Pokémon, such as Cascoon evolving into Dustox, will keep the poisoned status after evolving.
Source