Java + SQL
Eu acho que isso corresponde melhor ao objetivo da pergunta - ou seja, quebra não intencional.
Digamos que este seja um aplicativo para um registro de nascimento, onde eles gravam bebês recém-nascidos em um banco de dados e emitem certidões de nascimento. Alguns "gênios" projetaram a tabela mais ou menos assim:
CREATE TABLE birth (
year CHAR(2),
month CHAR(2),
date CHAR(2),
surname VARCHAR(50),
...
)
E o aplicativo java para registrar nascimentos tem algum código ao longo das linhas de:
public void recordNewBirth(...) {
...
executeQuery("INSERT INTO birth VALUES(?, ?, ?, ?, ...)", date.getYear(), date.getMonth(), date.getDate(), surname, ...);
}
Então o INSERT começaria a falhar no ano 2000 e ninguém mais poderia obter uma certidão de nascimento. Razão - java.util.Date # getYear () retorna o ano menos 1900, que possui três dígitos a partir de 2000.