There are a number of reasons that there could be multiple execution plans for the same stored procedure. One common case is the connection settings of the sessions that call it are different, such as SET ARITHABORT ON
which is by default different in Management Studio vs SQLCMD or .Net.