Augusto,

eu nao lembro q solucao eu propus inicialmente... mas, hoje, faria algo como o seuinte:

nomes <- gsub('^([[:alpha:]]{1})[[:alpha:]]+[[:blank:]]([[:alpha:]]{2})[[:alpha:]]+$', '\\1\\2', nomes.lin)
f <- function(x){
    tmp <- new.env()
    tmp$x <- x
    dups <- x[duplicated(x)]
    sapply(dups, function(v){
        i <- which(tmp$x == v)
        tmp$x[i] <- paste(v, 1:length(i), sep='')
    })
    tmp$x
}
nomesClean <- f(nomes)