jordanm's answer is incorrect. /etc/profile is not sourced by all shells. As you point out, it is not sourced by csh, tcsh - I'm not sure about zsh. It is sourced by Bourne shell (sh) derivatives, like Korn Shell (ksh) and BASH (bash). csh uses /etc/login. People who tend to exclusively use Borne Shell derivatives tend to forget other shells exist. They add something to /etc/profile expecting it to apply to "all users" and then are surprised when the odd C Shell user (and we are an odd lot) doesn't have the stuff they configured in /etc/profile.
Even so, people tend to forget about other Borne Shell derivative shells exist. If they use bash or ksh, they feel free to add syntax to /etc/profile that is not valid in Bourne Shell, like say defining a variable and exporting it on the same line. Then you get some script that does #!/bin/sh and it chokes on the syntax. /etc/profile should stick to Bourne Shell compatible syntax.
Likewise, you should stick to it in your own .profile (use .bash_profile if you want some bash syntax) - it may be a little extra typing, but it is extra typing you do all of once. Reference ${HOME} and not ~, etc. Some flavors of Unix, cron jobs run under sh, each line of your Makefile is processed by sh, so if you're working across multiple flavors of UNIX, it really pays to keep your .profile Bourne shell compatible. As a SysAdmin, I can't tell you how many times I've helped someone by fixing up their .profile to be Bourne Shell compatible.
On Linux, /bin/sh is a link to /bin/bash and when you run it, it looks a the path that was used to run it, and (in theory) limits itself to only things that Bourne Shell supports. Likewise, vi on Linux is really vim, again limiting itself. Occasionally you see features "bleed through". Occasionally vim pretending to be vi will do something that vim supports that vi does not because the authors of vim forgot to disable this in "vi backwards compatibility" mode. I would not be surprised if bash pretending to be sh has some similar "bleed through" features. Wouldn't be surprised if some feature "works on Borne Shell on Linux", but not on a System V or BSD based UNIX (AIX, OpenBSD, etc.).
Does it have positive ... and understood.What are you trying to say here ? I understood everything other than that paragraph. – asheeshr Feb 09 '13 at 14:22profile.ddirectory only works because its contents are sourced by/etc/profile, which is specified by shells such as bash as a startup file (see INVOCATION inman bash); if you edit/etc/profile, you can disable/etc/profile.d./etc/profile.localseems to be a SUSE invention, presumably sourced from somewhere such as/etc/profileso that you can put your own stuff there. However, if you move it to a non SUSE system and don't make any other adjustments, it won't be used by anything. – goldilocks Jul 30 '14 at 19:09