Question: There is a dynamic library, whose exposed structure is being changed, new fields are being added at the end of the structure.

Memory for the structure is allocated from within the library and application doesn't allocate it.But, the application may be accessing members of the structure directly.

In this case is it required for the application to recompile again with the library?

Library is being used on all Operating Systems (Windows, Linux, Solaris, HP-UX etc).

Answer: 
Due to this condition in your question:

> 
> Memory for the structure is allocated from within the library and application doesn't allocate it.
> 
> 
> 

You do not need to recompile the application. The people saying you need to are simply wrong.
The KDE techbase has a good article on binary compatibility.

<http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++>

I'd say that if the structure is public it should need to recompile. If the structure was only for internal use, it wouldn't matter.