[eluser]Aken[/eluser]
The delete() active record command will only return false if there is an error in the SQL statement. If the statement is valid but does not apply to any rows in your database, it will still process correctly and return true, it just won't delete anything because it didn't match.
As toopay said, use the affected_rows() method to check to see if anything was affected.