There are two types of move you may be talking about. Regular moves like Scratch, Ember and so on have 100% accuracy but are affected by many things:
- accuracy-reducing moves like Sand-attack
- evasive moves like Double Team
- some two-turn moves like Dig or Fly (i.e. when the pokemon has left the battlefield attacking moves will miss)
- hold-items such as BrightPowder (lowers the foe's accuracy)
- fog weather condition
There are also moves that cannot miss, like Swift. We call those "infinite accuracy" moves since the accuracy cannot be reduced by the things listed above.
The only exception is the two-turn moves. In the early games, Swift would always hit, even if the opponent had dug underground. But that's not the case anymore. I'm not sure exactly when they made that change.