The text file is storing text, not numbers.
I'd suggest using .ini files (If not hash tables) to store values, since it's easier to handle values.
Something like this should work:
Code:
on *:text:*fuckoff*:#: {
    if ( $readini(txt\warns.txt,Warns,$nick) <= 2 ) {
        msg $chan $nick $+ , please do not say that!
        .writeini txt\warns.txt Warns $nick $calc($v1 + 1)
    }
    if ( $readini(txt\warns.txt,Warns,$nick) >= 3 ) {
        msg $chan That's it! | /mode +b blah blah blah | .remini txt\warns.txt Warns $nick
    }
}


Oh, and just a pointer. Once the nick's warning counter reaches 2, both of the if statements will trigger.