Master-Slave semi circle replication not working in MySQL
I think the problem is the following:

Since B is a Slave of A, replication log position changes when something on A is executed and then records the changes to its binlogs. Server B picks up Server A binlog events and executes it.

Why won't Server B just pass it on to Server C ?

Server B need the following option enabled

[mysqld]
log_slave_updates


Whenever you want a server to be a Slave and a Master at the same time, you need log_slave_updates enabled. Here is what the MySQL Documentation says:


  Whether updates received by a slave server from a master server should be logged to the slave's own binary log. Binary logging must be enabled on the slave for this variable to have any effect.


In your case, Server B reads Server A's binlog events as recorded in Server B's relay logs, executes those events in Server B and nothing more.

When you enable log_slave_updates on Server B, then the following happens


Server B reads Server A's binlog events as recorded in Server B's relay logs
Server B executes those events in Server B
Server B records the event it executes in Server B's binlogs
Server C will receive Server B's binlogs and execute them


I mentioned using log_slave_updates a couple of times before:


Sep 09, 2014 : Is it mandatory to enable --log_slave_updates with MySQL Replication using GTID?
Nov 26, 2012 : Replicate MySQL 5.0 Master to 5.5 Slave?


Therefore, when you said


  It is because of this reason Server C doesn't know if there has been any change on Server B unless I explicitly change something (insert,update,delete) on Server B


The explicitly change something becomes implicit when you use log_slave_updates.